我有一个带有以下注释的剃须刀页面MyPage.cshtml
@page "{id}"
在那里,所以我可以找到一条像这样的路线;
/MyPage/Blah
一切正常。 当我看到类似以下内容时;
/MyPage/Blah/content/somefile.js
它会产生404
。
我希望由文件系统处理。
我确实有以下文件;
wwwroot/MyPage/Blah/content/somefile.js
我正在使用asp.net core 3.1
答案 0 :(得分:1)
首先,我测试代码,然后我可以工作。
然后,我发现是否在我的startup.cs中删除了app.UseStaticFiles();
。我也会遇到同样的错误。
因此,您可以检查是否可以访问wwwwroot中的其他文件。否则,可以检查您的startup.cs,并在Configure中像这样添加app.UseStaticFiles();
:
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
答案 1 :(得分:0)
没有其他与静态文件路由混在一起的路由。 即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