[英]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.