无法使用子目录直接访问托管在 Azure 静态应用程序中的 Blazor WASM

Fra*_*nky 3 blazor blazor-webassembly

我有一个托管在 Azure 静态应用程序上的 Blazor WASM,网站运行良好。但我意识到,如果您向某人提供指向网站上某个页面(例如https://www.myblazor.com/path/do )的链接,并且此人以前从未访问过该网站,则该网站将显示:

请求的内容不存在。

HttpStatusCode: 404
ErrorCode: WebContentNotFound
RequestId : 18382fd7-f01e-0015-31cc-67b610000000
TimeStamp : 2021-06-23T01:10:44.3896906Z
Run Code Online (Sandbox Code Playgroud)

该人必须首先访问根https://www.myblazor.com,网站加载后,他可以手动转到特殊页面。

为什么是这样?是因为我使用的是静态文件服务,而不是常规的应用服务吗?有可能让它发挥作用吗?链接到网站上的特定页面(不一定是根页面)是很常见的。

感谢您的任何建议。

Ant*_*Chu 8

您需要配置回退路由staticwebapp.config.json添加一个与 Blazor 应用的 csproj 文件位于同一文件夹中的文件,其中包含以下内容:

{
    "navigationFallback": {
        "rewrite": "/index.html"
    }
}

Run Code Online (Sandbox Code Playgroud)

请参阅此处的示例应用程序:https://github.com/staticwebdev/blazor-starter/blob/main/Client/staticwebapp.config.json