Asp.net core Razor页面路由和文件系统路由
我有一个带有以下注释的页面MyPage.cshtmlAsp.net core Razor页面路由和文件系统路由,asp.net-core,razor,razor-pages,Asp.net Core,Razor,Razor Pages,我有一个带有以下注释的页面MyPage.cshtml @page "{id}" 它在那里,所以我可以有一条这样的路线 /MyPage/Blah 这一切都有效。 当我看到像下面这样的东西 /MyPage/Blah/content/somefile.js 结果是404。 我希望这是由文件系统处理的。 我确实有以下文件 wwwroot/MyPage/Blah/content/somefile.js 我正在使用asp.net core 3.1首先,我测试了代码,我可以工作了
@page "{id}"
它在那里,所以我可以有一条这样的路线
/MyPage/Blah
这一切都有效。
当我看到像下面这样的东西
/MyPage/Blah/content/somefile.js
结果是404。
我希望这是由文件系统处理的。
我确实有以下文件
wwwroot/MyPage/Blah/content/somefile.js
我正在使用asp.net core 3.1首先,我测试了代码,我可以工作了 然后我发现如果我删除app.UseStaticFiles;在我的startup.cs中,我可以得到与您相同的错误。 因此,您可以检查是否可以访问WWroot中的其他文件。如果不能,您可以检查startup.cs,并添加app.UseStaticFiles;在配置中类似于此:
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
没有其他会干扰静态文件路由的路由。 i、 使用BlazorFrameworkFiles是我的问题 好的,开箱即用的asp.net core 3.1将路由到我的页面
/MyPage
如果我有一堆静态文件
wwwroot/MyPage/some.js
它也会这样做。
一切都好
当我的页面承载blazor应用程序并且有非文件客户端路由时,我遇到了其他路由问题
为了确保在所有这些情况下正确处理路线,我必须在我的razor页面中添加以下内容
@page "{id}/{*path:nonfile}"
所以当我得到一整页的更新
/MyPage/MyBlazorApp/counter
我的页面现在处理/MyPage/MyBlazorApp部分,其余部分交给客户端blazor应用程序,最终转到客户端路由:/MyPage/MyBlazorApp/counter开箱即用的路由工作。我有一个混乱的UseBlazorFrameworkFiles,它干扰了静态文件路由。