[英]Razor page routing and FileSystem routing
我有一個帶有以下注釋的 razor 頁面MyPage.cshtml
@page "{id}"
它就在那里,所以我可以有一條看起來像這樣的路線;
/MyPage/Blah
這一切都有效。 當我看到如下內容時;
/MyPage/Blah/content/somefile.js
它導致404
。
我希望由文件系統處理。 我確實有以下文件;
wwwroot/MyPage/Blah/content/somefile.js
我正在使用 asp.net 核心 3.1
首先,我測試了代碼,我可以工作了。
然后我發現我是否刪除app.UseStaticFiles();
在我的 startup.cs 中。我可以得到與你相同的錯誤。 所以你可以檢查你是否可以訪問 wwwwroot 中的其他文件。如果不能,你可以檢查你的 startup.cs,並添加app.UseStaticFiles();
在配置中像這樣:
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
不要有其他與 static 文件路由混淆的路由。 即 UseBlazorFrameworkFiles 是我的問題。
好的,開箱即用的 asp.net 核心 3.1 將路由到我的頁面;
/MyPage
如果我有一堆 static 文件
wwwroot/MyPage/some.js
它也會拉動它。 都好。
當我的頁面托管 blazor 應用程序並且具有非文件客戶端路由時,我遇到了其他路由問題。
為了確保在所有這些情況下正確處理路由,我必須將以下內容添加到我的 razor 頁面。
@page "{id}/{*path:nonfile}"
因此,當我刷新整個頁面時
/MyPage/MyBlazorApp/counter
我的頁面現在處理/MyPage/MyBlazorApp
部分,rest 被移交給客戶端 blazor 應用程序,最后 go 移交給客戶端路由: /MyPage/MyBlazorApp/counter
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.