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