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

Vue路由history模式解決404問題的幾種方法

 更新時間:2018年09月29日 14:35:39   作者:古蘭精  
這篇文章主要介紹了Vue路由history模式解決404問題的幾種方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

問題背景:

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

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

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

解決方案:

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

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

在nginx里配置了以下配置后, 可能首頁沒有問題,但鏈接其他會出現(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、 (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否則會出現(xiàn)vue的路由在nginx中刷新出現(xiàn)404
      index index.html index.htm;
    }
    #對應上面的@router,主要原因是路由的路徑資源并不是一個真實的路徑,所以無法找到具體的文件
    #因此需要rewrite到index.html中,然后交給路由在處理請求資源
    location @router {
      rewrite ^.*$ /index.html last;
    }
    #.......其他部分省略
 }

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關文章

  • vue+moment實現(xiàn)倒計時效果

    vue+moment實現(xiàn)倒計時效果

    這篇文章主要為大家詳細介紹了vue+moment實現(xiàn)倒計時效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-08-08
  • 詳解vue-router 2.0 常用基礎知識點之導航鉤子

    詳解vue-router 2.0 常用基礎知識點之導航鉤子

    本篇文章主要介紹了vue-router 2.0 常用基礎知識點之導航鉤子,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • 關于Vue的異步組件

    關于Vue的異步組件

    在大型項目中,我們可能需要拆分應用為更小的塊,并僅在需要時再從服務器加載相關組件。Vue 提供了defineAsyncComponent 方法來實現(xiàn)此功能,需要的朋友可以參考下
    2023-04-04
  • element-ui中實現(xiàn)tree子節(jié)點部分選中時父節(jié)點也選中

    element-ui中實現(xiàn)tree子節(jié)點部分選中時父節(jié)點也選中

    這篇文章主要介紹了element-ui中實現(xiàn)tree子節(jié)點部分選中時父節(jié)點也選中的方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • Vue Element前端應用開發(fā)之前端API接口的封裝

    Vue Element前端應用開發(fā)之前端API接口的封裝

    對整個系統(tǒng)來說,一般會有很多業(yè)務對象,而每個業(yè)務對象的API接口又有很多。我們這個VUE+Element 前端應用就是針對ABP框架的業(yè)務對象,因此前端的業(yè)務對象接口也是比較統(tǒng)一的,那么可以考慮在前端中對后端API接口調用進行封裝,引入ES6的方式進行前端API的抽象簡化。
    2021-05-05
  • Vue2.0設置全局樣式(less/sass和css)

    Vue2.0設置全局樣式(less/sass和css)

    這篇文章主要為大家詳細介紹了Vue2.0設置全局樣式(less/sass和css),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-11-11
  • 解決Antd Table組件表頭不對齊的問題

    解決Antd Table組件表頭不對齊的問題

    這篇文章主要介紹了解決Antd Table組件表頭不對齊的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-10-10
  • vue watch immediate方法用法詳解

    vue watch immediate方法用法詳解

    這篇文章主要介紹了vue watch immediate方法用法詳解,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-06-06
  • 使用vue打包進行云服務器上傳的問題

    使用vue打包進行云服務器上傳的問題

    這篇文章主要介紹了使用vue打包進行云服務器上傳,本文給大家介紹的非常詳細,對大家的工作或學習具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • Vue自定義加水波紋效果指令實例代碼

    Vue自定義加水波紋效果指令實例代碼

    這篇文章主要給大家介紹了關于Vue自定義加水波紋效果指令的相關資料,文中通過實例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2022-02-02

最新評論