簡體   English   中英

Nginx與6號角路由沖突

[英]Nginx conflicting with angular 6 routes

我有一個角度為6的應用程序,其基本href設置為/dashboard/ 使用--prod標志生成的位於服務器上的已構建文件a。

nginx conf看起來像:

location /dashboard {
    alias /<path_to_built_files>/frontend/dist/frontend/;
}

當我第一次使用example.com/dashboard訪問我的網站時,應用程序會完美加載,並將角度重定向到默認路由/create 因此,瀏覽器將我的路線顯示為example.com/dashboard/create

這正是我希望它表現的方式。 但是,如果我從此處重新加載頁面,瀏覽器將嘗試找到example.com/dashboard/create ,其返回404 Not Found。

我在這里的配置做錯了什么?

如果在index.html的路徑上找不到文件,則需要設置索引文件和重定向:

location /dashboard {
  alias /<path_to_built_files>/frontend/dist/frontend/;
  index index.html;
  try_files $uri $uri/ index.html =404;
}

您可以使用哈希 位置策略 ,它有助於記住瀏覽器的URL。 它使用URL的哈希片段部分來存儲客戶端的狀態,它更易於設置,並且不需要服務器端的任何合作 因此,只需在路由器配置中添加useHash ,如下所示-

RouterModule.forRoot(appRoutes, {useHash: true});

然后,您可以重建應用程序並部署到生產環境。 您會在網址中看到一個#

暫無
暫無

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

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