進入頁面後刷新不會出現任何問題,當你從/路由跳轉到/XXX路由,再刷新就會提示404。javascript
咱們的服務器是根據頁面路由,去按路徑尋找資源的。咱們打包好的web站點只有一個html頁面,不存在其餘資源目錄下的html,服務器找不到對應頁面因此才報404。html
我看網上有人用配置多個location對象,經過重定向回根目錄的index.html解決這個問題。可是我以爲這個方案過於繁瑣,不適用於比較大,頁面比較多的項目。因而我找到了一個只須要加一行代碼就能夠解決的方案。java
<!--只須要把這行代碼加到咱們的根目錄的location配置項中就能夠解決這個問題-->
try_files $uri $uri/ /index.html;
複製代碼
<!--加完之後是這個樣子的-->
location / {
root /usr/share/nginx/html;
index index.html index.htm;
try_files $uri $uri/ /index.html; //解決單頁面應用路由跳轉後刷新報404錯問題
xxx XXXXXX
}
<!--完成這些後,你只須要保存退出vim編輯器並從新啓動nginx就能夠了。 -->
複製代碼
最後,若是我講的這寫對你有幫助請幫我點個贊支持一下吧,剛開始分享本身的經驗,但願能夠獲得你們的支持和指正。 謝謝你們!nginx