最近在使用 Blazor 开发管理后台时遇到了如下的问题,我这里后台整体采用了 AntDesignBlazor 组件库,在上线之后发现ReuseTabs组件在使用过程中,如果默认 / 没有指定为项目的base href,打开标签页后,相互切换会导致url错误。

本地开发的时候项目是直接启动运行的,所以访问目录为 https://localhost:port/ ,Blazor 的 base 值也是默认的 / 。

但是当项目实际上线发布的时候,我将 Blazor的项目部署到了一个域名的子目录下。如 https://domain.com/consoul/ ,也就是部署在了网站的 consoul 目录中,在实际运行时就发现了上面的问题。

项目上线时因为是挂在一个域名的子路径下,所以调整了 base href 为 /consoul/ 然后在运行时 tab page 都可以打开,但是切换时 url 会丢失 base href 的值,导致 404



这是当时提交的 issues

https://github.com/ant-design-blazor/ant-design-blazor/issues/2860

在解决这个问题的过程中,因为这个问题在本地开发时时不会产生的,因为我们本地项目默认运行的时候并没有配置二级目录,启动的时候直接是 https://localhost:port/ 这样的形式,标签页直接调转的时候因为没有二级目录的存在,项目直接运行与根目录下则也不存在问题,不好调试,为了模拟出类似线上二级目录的环境,在经过一番折腾之后找到了如下的方法。

选中我们的 Blazor 项目右击属性,然后在左侧找到 调试-常规 ,点击打开调试启动配置文件UI

然后在命令行参数中输入,--pathbase=/consoul

然后找到 Blazor 项目的 index.html 文件同时调整 <base href="/consoul/" />

保存更改之后直接 Ctrl + F5 启动项目,即可看到类似如下的界面

因为我们调整了网页项目的运行基础目录所以此时 https://localhost:port/ 的根目录下已经没有页面了,提示我们需要访问 /consoul



可以看到我们本地的项目已经和线上一样可以运行在 /consoul/ 子目录中了。

然后就可以模拟线上的运行情况进行调试了,该 bug 目前已修复,

https://github.com/ant-design-blazor/ant-design-blazor/pull/3142

https://github.com/ant-design-blazor/ant-design-blazor/pull/3153

至此关于 Blazor项目在VisualStudio调试时配置运行基础目录 就讲解完了,有任何不明白的,可以在文章下面评论或者私信我,欢迎大家积极的讨论交流,有兴趣的朋友可以关注我目前在维护的一个 .NET 基础框架项目,项目地址如下

https://github.com/berkerdong/NetEngine.git

https://gitee.com/berkerdong/NetEngine.git

Blazor项目在VisualStudio调试时配置运行基础目录的更多相关文章

  1. [调试]VS2013调试时提示“运行时当前拒绝计算表达式的值”

    VS2013 下单元测试调试时遇到的问题,以前倒从未遇到过. 中文关键字在百度和谷歌中搜索均无果. Google 下搜索 “The runtime has refused to evaluate th ...

  2. 黄聪:VS2017调试时提示“运行时无法计算表达式的值”

    具体操作: 工具-选项-调试-常规,选中“使用托管兼容模式”,问题解决

  3. VS2010 F5调试时出现:“ 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常”解决

    VS2010 F5调试时出现 尝试运行项目时出错:未捕获通过反射调用的方法引发的异常 两个解决方法:1) 打开项目属性,选择调试选项卡,将“启用非托管代码调试”一项钩上.2) 打开项目属性,选择调试选 ...

  4. Android项目中独立Git项目分库后的编译调试时Gradle的配置

    基于AS开发项目,对于特定的功能模块,往往抽取成独立的库进行管理,然后上传到Marven库中,通过Gradle依赖的方式进行引用. 其优势体现在: 1,独立的Git项目库,模块功能,及职责界定清晰: ...

  5. ASP.NET+MVC入门踩坑笔记 (一) 创建项目 项目配置运行 以及简单的Api搭建

    哈喽各位 我又回来了! 前段时间研究了下ASP.NET,刚开始也是随便找网上的各种教程来看,但是鉴于本人技术有限,还是走了相当长的一段弯路的.所以我写下了这篇文章.希望各位刚刚入坑的ASP.NET开发 ...

  6. 献给那些每次调试时都要启动很多WEB项目的苦逼程序猿

    当一个解决方案包含多个WEB项目的时候,只要按F5调试,其它用不着的WEB项目也会自动添加到托盘里.很多新手都不知道如何解决这个问题,我也是刚知道. 在网上找了很多资料看到有2种解决方法: 1.把WE ...

  7. Xcode 运行时配置

    有时候,我们的app在测试时需要连接到一个testing服务器,在打包为企业证书的app时又需要连接到另一个ad hoc 服务器,或者我们想企业证书打包的app和debug模式打包的app有不同的AP ...

  8. VS调试时同时启动多个项目解决方法

    选中要设置的项目,不要右击里面的属性,而是按f4时显示属性,下面总是在调试时启动设为false.

  9. win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件

    win7,vs2010,asp.net项目中修改外部js文件,在调试时加载的还是旧文件 我杀过 w3wp.exe和asp.net_state的进程,重启 iis admin的服务,都还是不行. 只是把 ...

  10. 部署网站: 配置项目到iis上运行报目录错误

    配置项目到iis上运行报目录错误 以下三种方法可使用: 1.添加文件访问权限 everyone  (线上环境慎用) 2.重新注册iis 3.web.config 加一段话 在<system.we ...

随机推荐

  1. ES6的模块化(export导出)

    ES6 Module把一个文件当作一个模块,每个模块有自己的独立作用域,那如何把每个模块联系起来呢?核心点就是模块的导入(import)与导出(export). 模块化的好处: 防止命名冲突 代码复用 ...

  2. HCIA-ICT实战基础09-远程接入安全管理

    HCIA-ICT实战基础-远程接入安全管理 目录 AAA概述 AAA配置实现 telnet原理与配置 Stelnet(华为ssh的另一种称呼)配置 1 AAA概述 1.1 基本概念 AAA是Authe ...

  3. MFC调用外部dll时,出现无法解析的外部符号的解决方法)

    最近在一个MFC工程文件中调用了多个dll和lib文件,包括matlab和can连接文件,时常出现"无法解析的外部符号"的错误,特此记录解决方法.   通常出现这个问题的原因有以下 ...

  4. nodejs中的kafkajs,消费顺序,不重复消费

    参考:https://kafka.js.org/docs 确保同一个消息发送到同一个partition,一个topic,一个partition,一个consumer,内部单线程消费1.封装kafkaU ...

  5. token能放在cookie中吗

    能. token一般是用来判断用户是否登录的, 它内部包含的信息有: uid(用户唯一的身份标识). time(当前时间的时间戳). sign(签名,token 的前几位以哈希算法压缩成的一定长度的十 ...

  6. 记录jupyter lab 多个kernel混乱的问题

    问题描述 在Anaconda下我有多个虚拟环境,其中一个叫d2l,由于pytorch版本和cuda算力不匹配,重新create了一个环境:d2l_new.然后环境配置好了之后激活环境,启动jupyte ...

  7. 代码随想录算法训练营第二天| 977.有序数组的平方 ,209.长度最小的子数组 ,59.螺旋矩阵II

    977.有序数组的平方 :https://leetcode.cn/problems/squares-of-a-sorted-array/ 心得:周末再写... public class Solutio ...

  8. maven项目资源导出问题

    maven由于他的约定大于配置,我们之后可以能遇到我们写的配置文件,无法被导出或者生效的问题,解决方案: <!--在build中配置resources,来防止我们资源导出失败的问题--> ...

  9. redis每天生成自增流水号(001、002...)

    原理:利用redis的RedisAtomicLong类实现该功能:让其每天第一次放置一个新的自增的值(一天过期)然后和每天的日期相加就可以了例子: 20180901 + 001 ;当天就是 20180 ...

  10. Monterey 12.3 I225-V有线网卡导致死机或无法使用问题

    问题:升级Monterey12.3后启动到桌面死机 解决方法: 1.关闭/去掉所有有线网卡驱动.补丁.网卡设备ID注入: 2.启动命令中加入:dk.e1000=0: 3.启动不死机后,进入网络设置,手 ...