如何在 Blazor WASM 中为 URL 中的子文件夹配置客户端路由?

问题描述 投票:0回答:1

我遇到的问题是在我的 Blazor WASM 应用程序中,在开发(dotnet watch)时,如果应用程序内的链接或手动输入 URL(例如:http://localhost:5267/Contact)它会导航到没有问题的所需页面。

但是,当我在 Azure 上部署时,我可以导航到应用程序 (www.mywebsite.com) 并使用导航栏中的链接在应用程序内导航到应用程序的其他部分,但如果我手动输入 URL像上面一样(示例:www.mywebsite.com/Contact),我收到来自 azure 的 404 错误,控制台中仅显示 :

Failed to load resource: the server responded with a status of 404 ()      Contact:1 

我尝试了网上找到的几种解决方案,包括在项目的根目录中添加 web.config 文件,但都无济于事。

如有任何帮助,我们将不胜感激!

这也是我的第一个问题,如果有更多信息我可以分享,请告诉我!

asp.net-core blazor blazor-webassembly azure-static-web-app
1个回答
0
投票

如果您将 Blazor wasm 应用程序托管为 Azure 静态 Web 应用程序,则还需要 staticwebapp.config.json 来为您执行初始路由。在本地,这可以通过使用 Kestrel 来实现,但在 Azure 静态 Web 应用程序上,没有运行的服务器进程来执行初始路由。

另请参阅文档 https://learn.microsoft.com/en-us/azure/static-web-apps/configuration#file-location

对于我的情况,用以下内容填充 staticwebapp.config.json 文件就足够了:

{
  "navigationFallback": {
    "rewrite": "/index.html"
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.