<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
        主站蜘蛛池模板: 456亚洲人成在线播放网站| 亚洲AV日韩AV高潮无码专区| 亚洲av无码久久忘忧草| 巨波霸乳在线永久免费视频| 亚洲AV无码专区国产乱码4SE| 久久久久久毛片免费看| 亚洲人成人网站色www| 91视频免费观看高清观看完整| 亚洲综合日韩久久成人AV| 9久热精品免费观看视频| 亚洲午夜福利在线观看| 免费成人在线电影| 日产亚洲一区二区三区| 久久久久国色AV免费观看性色| 中文字幕亚洲精品无码| 国产一级一片免费播放i| 成人在线免费视频| 亚洲国产精品久久久久网站| 日韩欧毛片免费视频| 亚洲av乱码中文一区二区三区 | 精品亚洲成a人片在线观看少妇| 无码少妇精品一区二区免费动态 | 在线a级毛片免费视频| 久久亚洲精品无码gv| 亚洲毛片不卡av在线播放一区| 久久国产美女免费观看精品| 久久精品国产亚洲AV无码麻豆| 欧美a级在线现免费观看| 国产成人亚洲精品播放器下载| 免费人成视网站在线观看不卡| a级午夜毛片免费一区二区| 亚洲av无码片区一区二区三区| 国产免费人视频在线观看免费| 9久热精品免费观看视频| 亚洲色大成网站www永久| 日本不卡免费新一二三区| 免费一区二区无码东京热| 亚洲av一本岛在线播放 | 亚洲va久久久噜噜噜久久| 黄页网站免费观看| 日日躁狠狠躁狠狠爱免费视频|