vue-router部署到nginx,訪問首頁沒問題,從首頁里跳轉其他頁面也沒問題,但是非首頁的其他頁面,再次刷新,就會出現404現象。(本地正常)
配置如下圖:

由于nginx下需要配置多個vue工程,所以需要重定向,使得訪問路徑為 ip:port/project/
但是直接在地址欄訪問? ip:port/project/upload 出現404,程序內部跳轉則正常,這是因為vue-router設置的路徑不是真實存在的路徑。如上的404現象,是因為在nginx配置的根目錄下面壓根沒有upload頁面這個真實資源存在。(真實頁面只有index.html)
解決方法
方法1、網上一般都是說將nginx的配置改為下圖這樣,可是我試了沒用,可能是因為我在nginx下配了多個工程吧,只配一個工程的,可以試試這個
?server {
?????????listen 9090;
?????????server_name 10.2.10.130;
?????????root /home/dist/ngixn;
?????????index index.html;
?????????location / {
?????????????try_files $uri $uri/ @router;
?????????????index index.html;
?????????}
????????location @router {
????????????rewrite ^.*$ /index.html last;
????????}
}
?
方法2、在nginx的server里加上此段配置,有多個vue工程則每個都配一個。若不配的話頁面也能打開,只是二級頁面刷新會404
server {
?????????listen 9090;
?????????server_name 10.2.10.130;
?????????root /home/dist/ngixn;
?????????index index.html;
? ? ? ???location /project {
? ? ? ? ? ? ?try_files $uri $uri/ /project/index.html;
? ? ? ? ?}
}
個人理解:$uri表示訪問的頁面,$uri/表示配置的根路徑,如果路徑下沒有,則跳轉到根路徑下的/project/index.html
?
---------------------
來源:CSDN
原文:https://blog.csdn.net/sinat_29740819/article/details/87917263