2016-10-22 48 views
1

我也做了以下內容:Nginx的重寫規則Angularjs刪除#散列在URL中的動態路由

AngularJS應用

在app.js:

$locationProvider.html5Mode(true);

在index.html:

<base href="/">

nginx的配置

location/{ try_files $uri /index.html; }

部署後,東西都工作正常(#井號被移除)與靜態頁面。我可以直接去http://fakeurl/abouthttp://fakeurl/download頁面;如果我刷新瀏覽器,頁面仍然加載。

然而,當我直接到動態頁面:

http://fakeurl/cars/:car_id

然後nginx的將成爲404

如果我用的是#路徑,然後將其重定向到的路徑沒有#簽署並顯示該頁面;但是當我再次刷新頁面,它顯示404(這僅與動態路由發生)

http://fakeurl/#/cars/:car_id

http://fakeurl/#/shops/:shop_id

什麼重寫規則,我需要在nginx的塊寫爲我的動態路線?謝謝!

+0

你只需要加載index.html,你正在做什麼,你可以檢查它試圖訪問什麼文件,導致404(檢查錯誤或訪問日誌)? – Satys

回答

0

我認爲你可以使用這個表達式模式^(.*)\/#$1重寫。