如何解决剃刀页面路由和文件系统路由
我有一个带有以下注释的剃须刀页面MyPage.cshtml
@page "{id}"
在那里,所以我可以找到一条像这样的路线;
/MyPage/Blah
一切正常。 当我看到类似以下内容时;
/MyPage/Blah/content/somefile.js
它会产生404
。
我希望由文件系统处理。
我确实有以下文件;
wwwroot/MyPage/Blah/content/somefile.js
我正在使用asp.net core 3.1
解决方法
首先,我测试代码,然后我可以工作。
然后,我发现是否在我的startup.cs中删除了app.UseStaticFiles();
。我也会遇到同样的错误。
因此,您可以检查是否可以访问wwwwroot中的其他文件。否则,可以检查您的startup.cs,并在Configure中像这样添加app.UseStaticFiles();
:
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
,
没有其他与静态文件路由混在一起的路由。 即UseBlazorFrameworkFiles是我的问题。
好,所以现成的asp.net core 3.1将会路由到我的页面;
/MyPage
如果我有一堆静态文件
wwwroot/MyPage/some.js
它也会拉扯它。 一切都很好。
当我的页面托管一个blazor应用程序并且具有非文件客户端路由时,我遇到了其他路由问题。
要确保在所有情况下都能正确处理路由,我必须在剃须刀页面上添加以下内容。
@page "{id}/{*path:nonfile}"
所以当我刷新整个页面时
/MyPage/MyBlazorApp/counter
我的页面现在处理/MyPage/MyBlazorApp
部分,其余部分移交给客户端blazor应用程序,最终转到客户端路由:/MyPage/MyBlazorApp/counter
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。