我們在本地使用vue測試和切換頁面沒有任何問題。於是打包好文件並上傳到服務器,頁面可以正常打開,但是一刷新就會出現頁面404,這種情況我們該怎么辦呢?
首先分析問題
這種原因多數情況是因為vue中的router模式設置為history模式,頁面url切換的跟隨着路由切換,
但刷新時瀏覽器並不知道你的網頁輸入的參數地址是想要訪問什么,並沒有找到你想要訪問的文件目錄,所以會報錯404;
分析清楚問題之后我們應該怎么辦呢?
一、切換hash模式
直接在進入route路由請求也,把route模式改為hash模式訪問,但這種模式有個缺點,后面會跟個#號,
但我們並不希望使用這種模式,而且看起來很難看讓人摸不清頭腦,后面到底是想請求什么呢
二、修改nginx的nginx.conf配置文件
在location中添加如下代碼。
root 和index一般默認即可。
除非你index文件沒有放在根目錄
location / {
root ***
index ***
try_files $uri $uri/ /index.html;
}
三、修改寶塔配置文件
這種修改不太建議,因為404有可能被攔截
四、使用偽靜態目錄
當域名不能地址報錯時,統一指向默認地址
if (!-e $request_filename) {
rewrite ^/(.*) /index.html last;
break;
}