簡體   English   中英

如何使用IIS appsettings.json在dotnet核心中配置Angular 6 URL重寫

[英]How to configure Angular 6 URL rewrite in dotnet core using IIS appsettings.json

我正在使用IIS將Angular SPA部署到我的.NET Core應用程序。

我做了一個生產Angular構建(ng build --base-href / ng --deploy-url / ng)並將其部署到ng目錄中的wwwroot。

當你手動轉到index.html的Angular網址時,我目前正在使用它:

https://localhost:44316/ng/index.html

但是,如果您刷新或手動導航到網址,則會獲得404。

https://localhost:44316/ng/dash

並不奇怪,因為Angular說這將在沒有URL重定向的情況下發生。 Angular文檔中 ,它說要在web.config中插入重寫規則。

但是,我正在使用.NET Core,我的一個團隊成員告訴我,修改web.config XML是一種舊的做事方式。 看起來我需要修改appsettings.json才能使這個重寫規則發生。

Soo ....之前有人這么做過嗎? 如果我不修改web.config來設置我的轉發,我該如何設置它?

您是否嘗試過使用哈希策略來確認這可能是服務器配置錯誤? 通常404當服務器沒有指向“主角度頁面”時發生,這是你提到的index.html。

要使用哈希策略,您只需將此參數添加到RouterModule導入:

RouterModule.forRoot(routes,{useHash:true})

我忘記了我發現這個小代碼片段的位置,但它確實做到了。 我在Startup.cs中的Configure()中使用了以下內容:

        app.Run(async (context) =>
       {
           context.Response.ContentType = "text/html";
           await context.Response.SendFileAsync(Path.Combine(env.WebRootPath, "ng/index.html"));
       });

基本上,在我的ng目錄中的所有頁面上,它將加載index.html(不更改URL)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM