routes - 为什么在服务器上部署后 Blazor WASM 路由不使用正确的基本 URI?(NavigationManager.NavigateTo() 方法)
问题描述
在本地主机上调试时,我正在按预期开发路由的 Blazor WASM 项目。例如,登录后,如果成功,则调用NavigateTo("/mypage") 。这在本地按预期工作,并将我带到"localhost:44303/mypage"。
但是,一旦部署到我的测试服务器,它就不会了。项目部署到 wwwroot 中的文件夹,因此一旦部署,站点的 URL 格式/位置是“test.com/MyApp/”(登录页面)。当它在登录后路由到另一个页面时,它应该看起来像“test.com/MyApp/mypage”。但相反,它路由到"test.com/mypage",完全删除了"MyApp/",这当然会在任何地方返回 404。
我认为这是调整 index.html 文件<base href="">
值的简单修复,但这并没有改变路由的任何内容。在本地调试时,我有它<base href="/" />
(有效)。部署时,它是<base href="/MyApp/" />
(不起作用)。我对此进行了研究,但似乎并没有很多人遇到这个特定问题,或者推荐的修复方法是我已经尝试过的基本 href。
如果我将项目代码中的NavigateTo()方法更改为看起来像NavigateTo("MyApp/mypage"),那么它可以在服务器上运行,但这似乎不正确/不必要。我不应该根据我是否正在调试将它们设置为有条件的,对吧?
看来我的应用程序在路由期间将基本 URI 丢弃在某处,我不知道在哪里/为什么。任何人都可以阐明这一点吗?
解决方案
删除前面的斜线“/”并使用。
NavigateTo("mypage")
推荐阅读
- javascript - 链接重定向到另一个页面和特定选项卡
- oracle - INITIAL_VALUE 上的 SET_ITEM_PROPERTY 不起作用
- git - Azure DevOps 默认权限
- bitwise-xor - 如何在按位异或中反转我的公式以获得 53 的值?
- javascript - 反应和文本输入 - 使用 onBlur 或 onChange?
- apache-kafka - 更改默认端口的 Apache Zookeeper 问题
- python - 为什么无论如何我都会不断收到“正在关闭...”作为输出?
- ruby - 如何更改 gemfile.lock 捆绑的版本
- ruby-on-rails - Rails + Puma + sidekiq + rabbitMQ(bunny gem) ,当我们在 heroku 上运行时遇到连接问题
- android - Phonegap 推送通知 - PushNotification.init() 未触发