91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Vue路由history模式如何解決404問題

發布時間:2021-08-05 10:33:49 來源:億速云 閱讀:820 作者:小新 欄目:web開發

小編給大家分享一下Vue路由history模式如何解決404問題,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

問題背景:

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

不過history的這種模式需要后臺配置支持。比如:當我們進行項目的主頁的時候,一切正常,可以訪問,但是當我們刷新頁面或者直接訪問路徑的時候就會返回404,那是因為在history模式下,只是動態的通過js操作window.history來改變瀏覽器地址欄里的路徑,并沒有發起http請求,但是當我直接在瀏覽器里輸入這個地址的時候,就一定要對服務器發起http請求,但是這個目標在服務器上又不存在,所以會返回404

怎么解決呢?我們現在可以把所有請求都轉發到 http://localhost:8080/bank/page/index.html上就可以了。

解決方案:

對于VUE的router[mode: history]模式在開發的時候,一般都不出問題。是因為開發時用的服務器為node,Dev環境中自然已配置好了。

但對于放到nginx下運行的時候,自然還會有其他注意的地方。總結如下:

在nginx里配置了以下配置后, 可能首頁沒有問題,但鏈接其他會出現(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、官網推薦

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、 (vue.js官方教程里提到的https://router.vuejs.org/zh-cn/essentials/history-mode.html)

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

以上是“Vue路由history模式如何解決404問題”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

育儿| 巨鹿县| 南开区| 河曲县| 赣州市| 江华| 万宁市| 木兰县| 南华县| 桑日县| 杭锦旗| 颍上县| 张家口市| 金寨县| 普安县| 岫岩| 扎鲁特旗| 巴林左旗| 龙岩市| 石嘴山市| 富宁县| 永吉县| 赫章县| 平遥县| 民勤县| 葫芦岛市| 凯里市| 平陆县| 大冶市| 平凉市| 梅河口市| 漳平市| 凤阳县| 林甸县| 繁昌县| 红安县| 潜江市| 手游| 岗巴县| 黑水县| 琼海市|