麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁(yè) > 編程 > JavaScript > 正文

VUE的history模式下除了index外其他路由404報(bào)錯(cuò)解決辦法

2019-11-19 10:59:59
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

我們先來(lái)看下代碼:

location / {index index.html;root /dist;try_files $uri $uri/ /index.html;}

try_files首先會(huì)判斷他是文件,還是一個(gè)目錄,結(jié)果發(fā)現(xiàn)他是文件,與第一個(gè)參數(shù) $uri變量匹配。
然后去到網(wǎng)站目錄下去查找文件是否存在,如果存在直接讀取返回。如果不存在直接跳轉(zhuǎn)到第三個(gè)參數(shù).

現(xiàn)在不明白的是既然跳到了index為什么顯示的還是路由后的界面

內(nèi)容擴(kuò)展:

問(wèn)題背景:

vue-router 默認(rèn)是hash模式,使用url的hash來(lái)模擬一個(gè)完整的url,當(dāng)url改變的時(shí)候,頁(yè)面不會(huì)重新加載。但是如果我們不想hash這種以#號(hào)結(jié)尾的路徑時(shí)候的話,我們可以使用路由的history的模式。比如如下網(wǎng)址:使用hash模式的話,那么訪問(wèn)變成 http://localhost:8080/bank/page/count/#/ 這樣的訪問(wèn),如果路由使用 history的話,那么訪問(wèn)的路徑變成 如下:http://localhost:8080/bank/page/count 這樣的了;

不過(guò)history的這種模式需要后臺(tái)配置支持。比如:當(dāng)我們進(jìn)行項(xiàng)目的主頁(yè)的時(shí)候,一切正常,可以訪問(wèn),但是當(dāng)我們刷新頁(yè)面或者直接訪問(wèn)路徑的時(shí)候就會(huì)返回404,那是因?yàn)樵趆istory模式下,只是動(dòng)態(tài)的通過(guò)js操作window.history來(lái)改變?yōu)g覽器地址欄里的路徑,并沒(méi)有發(fā)起http請(qǐng)求,但是當(dāng)我直接在瀏覽器里輸入這個(gè)地址的時(shí)候,就一定要對(duì)服務(wù)器發(fā)起http請(qǐng)求,但是這個(gè)目標(biāo)在服務(wù)器上又不存在,所以會(huì)返回404

怎么解決呢?我們現(xiàn)在可以把所有請(qǐng)求都轉(zhuǎn)發(fā)到 http://localhost:8080/bank/page/index.html上就可以了。

解決方案:

對(duì)于VUE的router[mode: history]模式在開(kāi)發(fā)的時(shí)候,一般都不出問(wèn)題。是因?yàn)殚_(kāi)發(fā)時(shí)用的服務(wù)器為node,Dev環(huán)境中自然已配置好了。

但對(duì)于放到nginx下運(yùn)行的時(shí)候,自然還會(huì)有其他注意的地方。總結(jié)如下:

在nginx里配置了以下配置后, 可能首頁(yè)沒(méi)有問(wèn)題,但鏈接其他會(huì)出現(xiàn)(404)

    location / {   root D:/Test/exprice/dist;   index index.html index.htm;   try_files $uri $uri/ /index.html;   add_header 'Access-Control-Allow-Origin' '*';   add_header 'Access-Control-Allow-Credentials' 'true';   add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';   add_header 'Access-Control-Allow-Headers' 'DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type';  }    location ^~/api/ {   proxy_pass http://39.105.109.245:8080/;  }

為了解決404,需要通過(guò)以下兩種方式:

1、官網(wǎng)推薦

location / {  root D:/Test/exprice/dist;  index index.html index.htm;  try_files $uri $uri/ /index.html;

2、匹配errpr_page

location /{  root /data/nginx/html;  index index.html index.htm;  error_page 404 /index.html;}

3、

 server {  listen  8888;#默認(rèn)端口是80,如果端口沒(méi)被占用可以不用修改  server_name localhost;  root  E:/vue/my_project/dist;#vue項(xiàng)目的打包后的dist  location / {   try_files $uri $uri/ @router;#需要指向下面的@router否則會(huì)出現(xiàn)vue的路由在nginx中刷新出現(xiàn)404   index index.html index.htm;  }  #對(duì)應(yīng)上面的@router,主要原因是路由的路徑資源并不是一個(gè)真實(shí)的路徑,所以無(wú)法找到具體的文件  #因此需要rewrite到index.html中,然后交給路由在處理請(qǐng)求資源  location @router {   rewrite ^.*$ /index.html last;  }  #.......其他部分省略 }

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 精品国产精品久久 | 天天草夜夜骑 | 国产资源在线视频 | av在线观| 美国一级免费视频 | 欧美一级久久 | 亚洲视频黄 | 国产黄色一区二区 | 日韩av日韩 | 国产98色| 日韩精品中文字幕一区 | 国产午夜免费视频 | 91成人久久| 久久精品视频在线 | 久久逼网 | 毛片免费视频播放 | 国产欧美精品综合一区 | 亚洲第一激情网 | 黄网站免费在线看 | 久久久久久久久久久久网站 | 欧美黄一级 | 日韩黄在线观看 | 美国av在线免费观看 | 色就操| xxxeexxx性国产| 欧美扩阴视频 | 一本色道久久99精品综合蜜臀 | 嫩草91在线| 黄色片网站在线免费观看 | 亚洲成人免费影视 | 黄色片网站免费在线观看 | 国产成人高潮免费观看精品 | 免费在线观看国产精品 | 精品av在线播放 | 国产精品久久久久久久亚洲按摩 | 精品久久久久久久久久久下田 | 国产亚洲精品久久久久久久久 | 精品久久中文字幕 | 国产成年人视频 | 精品国产一区二区三区在线 | 久久久久国产成人精品亚洲午夜 |