vue項目history模式刷新404問題解決辦法
前言
vue項目history模式部署到服務(wù)器后 ,根路徑訪問沒有問題,但是進入其他功能再刷新頁面就會出現(xiàn)404,因為你沒在nginx或者apache配置上面加上重定向跳轉(zhuǎn)。
解決辦法,只需要加上這段配置:
nginx配置內(nèi)容:
location / { try_files $uri $uri/ @router; index index.html; } location @router { rewrite ^.*$ /index.html last; }
apache配置內(nèi)容:
RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ ./index.html [L]
這句配置的意思是每次匹配url路徑時候找不到對應(yīng)靜態(tài)資源時候調(diào)制跳轉(zhuǎn)到index.html文件
解析為什么會這樣(針對路由在history模式下):
因為vue項目中路由hash模式改為了history模式,由于hash模式時url帶的#號后面是哈希值不會作為url的一部分發(fā)送給服務(wù)器,而history模式下當(dāng)刷新頁面之后瀏覽器會直接去請求服務(wù)器,而服務(wù)器沒有這個路由,于是就出現(xiàn)404。
因為我們的應(yīng)用是單頁客戶端應(yīng)用,當(dāng)使用 history 模式時,URL 就像正常的 url,可以直接訪問http://www.xxx.com/user/id,但是因為vue-router設(shè)置的路徑不是真實存在的路徑,所以刷新就會返回404錯誤。
想要history模式正常訪問,還需要后臺配置支持。要在服務(wù)端增加一個覆蓋所有情況的候選資源:如果 URL 匹配不到任何靜態(tài)資源,則應(yīng)該返回同一個 index.html 頁面,這個頁面就是你 app 依賴的頁面。
也就是在服務(wù)端修改404錯誤頁面的配置路徑,讓其指向到index.html。
總結(jié)
到此這篇關(guān)于vue項目history模式刷新404問題解決辦法的文章就介紹到這了,更多相關(guān)vue history模式刷新404內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue 使用axios 數(shù)據(jù)請求第三方插件的使用教程詳解
這篇文章主要介紹了vue 使用axios 數(shù)據(jù)請求第三方插件的使用 ,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-07-07vue 彈窗時 監(jiān)聽手機返回鍵關(guān)閉彈窗功能(頁面不跳轉(zhuǎn))
這篇文章主要介紹了vue 彈窗時 監(jiān)聽手機返回鍵關(guān)閉彈窗功能,本文給大家介紹的非常詳細(xì),具有一定的參考借鑒價值(頁面不跳轉(zhuǎn)) ,需要的朋友可以參考下2019-05-05vue前端和Django后端如何查詢一定時間段內(nèi)的數(shù)據(jù)
這篇文章主要給大家介紹了關(guān)于vue前端和Django后端如何查詢一定時間段內(nèi)的數(shù)據(jù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02