欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時(shí)間:2019年08月21日 14:05:53   作者:liufeng666  
在本篇文章里小編給大家分享的是關(guān)于VUE的history模式下除了index外其他路由404報(bào)錯(cuò)解決辦法,對此有需要的朋友們可以學(xué)習(xí)下。

我們先來看下代碼:

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ò)展:

問題背景:

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

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

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

解決方案:

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

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

在nginx里配置了以下配置后, 可能首頁沒有問題,但鏈接其他會(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,需要通過以下兩種方式:

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,如果端口沒被占用可以不用修改
  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;
  }
  #對應(yīng)上面的@router,主要原因是路由的路徑資源并不是一個(gè)真實(shí)的路徑,所以無法找到具體的文件
  #因此需要rewrite到index.html中,然后交給路由在處理請求資源
  location @router {
   rewrite ^.*$ /index.html last;
  }
  #.......其他部分省略
 }

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 解決vscode進(jìn)行vue格式化,會(huì)自動(dòng)補(bǔ)分號和雙引號的問題

    解決vscode進(jìn)行vue格式化,會(huì)自動(dòng)補(bǔ)分號和雙引號的問題

    這篇文章主要介紹了解決vscode進(jìn)行vue格式化,會(huì)自動(dòng)補(bǔ)分號和雙引號的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • 關(guān)于element中el-cascader的使用方式

    關(guān)于element中el-cascader的使用方式

    這篇文章主要介紹了關(guān)于element中el-cascader的使用方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • 詳解vue中使用axios對同一個(gè)接口連續(xù)請求導(dǎo)致返回?cái)?shù)據(jù)混亂的問題

    詳解vue中使用axios對同一個(gè)接口連續(xù)請求導(dǎo)致返回?cái)?shù)據(jù)混亂的問題

    這篇文章主要介紹了詳解vue中使用axios對同一個(gè)接口連續(xù)請求導(dǎo)致返回?cái)?shù)據(jù)混亂的問題,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • Vue使用NProgress的操作過程解析

    Vue使用NProgress的操作過程解析

    這篇文章主要介紹了Vue使用NProgress的操作過程解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 對 Vue-Router 進(jìn)行單元測試的方法

    對 Vue-Router 進(jìn)行單元測試的方法

    這篇文章主要介紹了對 Vue-Router 進(jìn)行單元測試的方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-11-11
  • vue中使用過濾器filters的this為undefined的問題

    vue中使用過濾器filters的this為undefined的問題

    這篇文章主要介紹了vue中使用過濾器filters的this為undefined的問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • vue項(xiàng)目不能使用localhost訪問的解決

    vue項(xiàng)目不能使用localhost訪問的解決

    這篇文章主要介紹了vue項(xiàng)目不能使用localhost訪問的解決方案,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 如何使用vue實(shí)現(xiàn)跨域訪問第三方http請求

    如何使用vue實(shí)現(xiàn)跨域訪問第三方http請求

    這篇文章主要介紹了如何使用vue實(shí)現(xiàn)跨域訪問第三方http請求,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2024-03-03
  • 使用Vue編寫一個(gè)日期選擇器

    使用Vue編寫一個(gè)日期選擇器

    這篇文章主要為大家詳細(xì)介紹了如何使用Vue編寫一個(gè)簡單的日期選擇器,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2023-12-12
  • Vuex模塊化與持久化深入講解

    Vuex模塊化與持久化深入講解

    在實(shí)際項(xiàng)目開發(fā)過程中,如果公共數(shù)據(jù)比較多我們會(huì)使用vuex做公共狀態(tài)管理,但是在對瀏覽器進(jìn)行刷新操作的時(shí)候,會(huì)導(dǎo)致vuex內(nèi)的數(shù)據(jù)丟失,這種情況有些時(shí)候是沒問題的,但是有的時(shí)候我們需要某些數(shù)據(jù)可以持久化的保存,這樣就需要做對應(yīng)的處理
    2023-01-01

最新評論