<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        VUE的history模式下除了index外其他路由404報錯解決辦法

        來源:懂視網 責編:小采 時間:2020-11-27 21:52:13
        文檔

        VUE的history模式下除了index外其他路由404報錯解決辦法

        VUE的history模式下除了index外其他路由404報錯解決辦法:我們先來看下代碼: location / { index index.html; root /dist; try_files $uri $uri/ /index.html; } try_files首先會判斷他是文件,還是一個目錄,結果發現他是文件,與第一個參數 $uri變量匹配。 然后去到網站目錄下去查找文件是否存在,如果存在
        推薦度:
        導讀VUE的history模式下除了index外其他路由404報錯解決辦法:我們先來看下代碼: location / { index index.html; root /dist; try_files $uri $uri/ /index.html; } try_files首先會判斷他是文件,還是一個目錄,結果發現他是文件,與第一個參數 $uri變量匹配。 然后去到網站目錄下去查找文件是否存在,如果存在

        我們先來看下代碼:

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

        try_files首先會判斷他是文件,還是一個目錄,結果發現他是文件,與第一個參數 $uri變量匹配。
        然后去到網站目錄下去查找文件是否存在,如果存在直接讀取返回。如果不存在直接跳轉到第三個參數.

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

        內容擴展:

        問題背景:

        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下運行的時候,自然還會有其他注意的地方??偨Y如下:

        在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、

         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;
         }
         #.......其他部分省略
         }

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        VUE的history模式下除了index外其他路由404報錯解決辦法

        VUE的history模式下除了index外其他路由404報錯解決辦法:我們先來看下代碼: location / { index index.html; root /dist; try_files $uri $uri/ /index.html; } try_files首先會判斷他是文件,還是一個目錄,結果發現他是文件,與第一個參數 $uri變量匹配。 然后去到網站目錄下去查找文件是否存在,如果存在
        推薦度:
        標簽: VUE 路由 index
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 99在线在线视频免费视频观看| 在线精品亚洲一区二区| 日韩亚洲欧洲在线com91tv| 亚洲第一AAAAA片| 亚洲欧美成人av在线观看 | 国产精品免费观看| eeuss影院www天堂免费| 免费99热在线观看| 亚洲国产综合专区电影在线| 亚洲avav天堂av在线网毛片| 亚洲av无码专区亚洲av不卡| 国产精品无码免费视频二三区| 亚洲bt加勒比一区二区| 久久水蜜桃亚洲AV无码精品| 国产成人在线观看免费网站 | 亚洲精品国产福利一二区| 亚洲精品国产手机| 99re热免费精品视频观看| 国产精一品亚洲二区在线播放| 亚洲欧美日韩中文无线码| 国产又粗又长又硬免费视频| 免费大片av手机看片| 亚洲女久久久噜噜噜熟女| 国产精品亚洲一区二区无码| 尤物视频在线免费观看| 全免费毛片在线播放| 亚洲性无码一区二区三区| 免费一级毛片在级播放| 亚洲人成777在线播放| 亚洲国产最大av| 免费一级做a爰片久久毛片潮喷| 亚洲一线产区二线产区区| 亚洲成av人片在线观看天堂无码| 国产亚洲精久久久久久无码AV| 亚洲日韩亚洲另类激情文学| 亚洲福利精品一区二区三区| 毛片无码免费无码播放| 亚洲福利在线视频| 性xxxx视频免费播放直播| 亚洲精品自偷自拍无码| 大学生高清一级毛片免费|