【问题标题】:Blazor 404 page not showing if router is mismatched如果路由器不匹配,Blazor 404 页面不显示
【发布时间】:2020-07-09 05:25:28
【问题描述】:

我正在开发 Blazor POC,但遇到了路由问题。我已经在页面上实现了一些路由,但是如果某些路由未配置并尝试从浏览器加载而不是仅在浏览器上获取“正在加载...”文本

在 App.razor 文件下方

<Router AppAssembly="@typeof(Program).Assembly">
<Found Context="routeData">
    <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)" />
</Found>
<NotFound>
    @*<LayoutView Layout="@typeof(BlazorWorkshop.Web.Client.Pages.Error404)">
            <p>Sorry, there's nothing at this address.</p>
        </LayoutView>*@

    <p>Sorry, there's nothing at this address.</p>
</NotFound>

Index.html 如下所示

<body id="page-top">
<app>
    Loading...
</app>

<script src="_framework/blazor.webassembly.js"></script>
<script>navigator.serviceWorker.register('service-worker.js');</script>

控制台报错:

net::ERR_ABORTED 404

获取脚本时收到错误的 HTTP 响应代码 (404)。 未捕获(承诺)类型错误:无法使用脚本('https://localhost:44336/product/service-worker.js')为范围('https://localhost:44336/product/')注册 ServiceWorker:获取脚本时收到错误的 HTTP 响应代码 (404)。

【问题讨论】:

  • 您是否在控制台中遇到任何错误?
  • 错误更新有问题。谢谢

标签: blazor blazor-server-side blazor-client-side blazor-webassembly


【解决方案1】:

在遇到类似(如果不相同)问题时发现了这个问题。如果您查看错误,您会注意到它没有从根 URL 加载您的资源。对我来说,将以下内容添加到我的 index.html 的头部是有效的:

<base href="/" />

【讨论】:

    猜你喜欢
    • 2021-07-24
    • 2020-12-24
    • 2015-11-17
    • 2015-11-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-10
    相关资源
    最近更新 更多