vue框架下部署上線后刷新報(bào)404問題解決方案

@TOC

Apache配置

<IfModule mod_rewrite.c>
  RewriteEngine On
  RewriteBase /
  RewriteRule ^index\.html$ - [L]
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.html [L]
</IfModule>

nginx配置

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

vue history模式下nginx配置

服務(wù)端nginx的一開始配置如下(假設(shè)域名為:xx.xxx.com):
[***** ~]# cat /Data/app/nginx/conf/vhosts/xx.xxx.com.conf

 server {
         listen 80;

         server_name testwx.wangshibo.com;
         root /Data/app/xqsj_wx/dist;
         index index.html;

         access_log /var/log/testwx.log main;

}

修改如下:

server {
         listen 80;

         server_name testwx.wangshibo.com;
         root /Data/app/xqsj_wx/dist;
         index index.html;
         access_log /var/log/testwx.log main;
         
        ## 注意從這里開始
         location / {
             try_files $uri $uri/ @router;
             index index.html;
         }

        location @router {
            rewrite ^.*$ /index.html last;
        }

}

原生 Node.js

const http = require('http')
const fs = require('fs')
const httpPort = 80

http.createServer((req, res) => {
  fs.readFile('index.htm', 'utf-8', (err, content) => {
    if (err) {
      console.log('We cannot open "index.htm" file.')
    }

    res.writeHead(200, {
      'Content-Type': 'text/html; charset=utf-8'
    })

    res.end(content)
  })
}).listen(httpPort, () => {
  console.log('Server listening on: http://localhost:%s', httpPort)
})

基于 Node.js 的 Express

對于 Node.js/Express悠菜,請考慮使用 connect-history-api-fallback 中間件

Internet Information Services (IIS)

  1. 安裝 IIS UrlRewrite
  2. 在你的網(wǎng)站根目錄中創(chuàng)建一個(gè) web.config 文件,內(nèi)容如下:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <system.webServer>
   <rewrite>
     <rules>
       <rule name="Handle History Mode and custom 404/500" stopProcessing="true">
         <match url="(.*)" />
         <conditions logicalGrouping="MatchAll">
           <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
           <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
         </conditions>
         <action type="Rewrite" url="/" />
       </rule>
     </rules>
   </rewrite>
 </system.webServer>
</configuration>

Caddy

rewrite {
    regexp .*
    to {path} /
}

Firebase 主機(jī)

在你的 firebase.json 中加入:

{
  "hosting": {
    "public": "dist",
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }
}

最后

給個(gè)警告躯护,因?yàn)檫@么做以后喜爷,你的服務(wù)器就不再返回 404 錯(cuò)誤頁面,因?yàn)閷τ谒新窂蕉紩祷?index.html 文件匀哄。為了避免這種情況聊训,你應(yīng)該在 Vue 應(yīng)用里面覆蓋所有的路由情況,然后在給出一個(gè) 404 頁面恢氯。

const router = new VueRouter({
  mode: 'history',
  routes: [
    { path: '*', component: NotFoundComponent }
  ]
})
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末带斑,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子勋拟,更是在濱河造成了極大的恐慌勋磕,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件敢靡,死亡現(xiàn)場離奇詭異挂滓,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)啸胧,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進(jìn)店門赶站,熙熙樓的掌柜王于貴愁眉苦臉地迎上來幔虏,“玉大人,你說我怎么就攤上這事贝椿∠肜ǎ” “怎么了?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵烙博,是天一觀的道長瑟蜈。 經(jīng)常有香客問我,道長渣窜,這世上最難降的妖魔是什么铺根? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮乔宿,結(jié)果婚禮上位迂,老公的妹妹穿的比我還像新娘。我一直安慰自己予颤,他們只是感情好囤官,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著蛤虐,像睡著了一般党饮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上驳庭,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天刑顺,我揣著相機(jī)與錄音,去河邊找鬼饲常。 笑死蹲堂,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的贝淤。 我是一名探鬼主播柒竞,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼播聪!你這毒婦竟也來了朽基?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤离陶,失蹤者是張志新(化名)和其女友劉穎稼虎,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體招刨,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡霎俩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片打却。...
    茶點(diǎn)故事閱讀 40,137評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡杉适,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出学密,到底是詐尸還是另有隱情淘衙,我是刑警寧澤,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布腻暮,位于F島的核電站彤守,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏哭靖。R本人自食惡果不足惜具垫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望试幽。 院中可真熱鬧筝蚕,春花似錦、人聲如沸铺坞。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽济榨。三九已至坯沪,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間擒滑,已是汗流浹背腐晾。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丐一,地道東北人藻糖。 一個(gè)月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像库车,于是被迫代替她去往敵國和親巨柒。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內(nèi)容

  • 1. Vue概述 1.1 Vue介紹 Vue 是一套用于構(gòu)建用戶界面的漸進(jìn)式框架柠衍。 1.2 Vue核心思想 雙向數(shù)...
    nimw閱讀 576評論 0 4
  • 1.問題: 使用Vue.js框架洋满,利用vue-route結(jié)合webpack編寫了一個(gè)單頁路由項(xiàng)目,運(yùn)維協(xié)助在服務(wù)器...
    FLYMOTH閱讀 7,770評論 3 2
  • 用vue-cli開發(fā)的項(xiàng)目在開發(fā)完打包之后想在本地預(yù)覽要怎么做呢拧略?這里要根據(jù)你的路由模式來分兩種情況 1. his...
    liwuwuzhi閱讀 13,405評論 6 16
  • 今天下午去了大醫(yī)院,因?yàn)橛形魂P(guān)系要好的哥住院了瘪弓,昨天下午剛做了心臟的一個(gè)微創(chuàng)手術(shù)垫蛆,當(dāng)時(shí) 嫂子說嚴(yán)重了還需要放支架...
    花花的草閱讀 273評論 0 0
  • 我們誰都沒有對錯(cuò) 一切皆因年少無知 ――致少年
    Story7閱讀 149評論 0 1