vue部署到域名二級(jí)目錄刷新404的解決
vue部署到域名二級(jí)目錄刷新404
一個(gè)域名有個(gè)根目錄,但有兩個(gè)項(xiàng)目,就需要二級(jí)目錄
比如說(shuō),我有一個(gè)域名為csdn.com的服務(wù)器,我想部署兩個(gè)項(xiàng)目:
- 12306項(xiàng)目:http://csdn.com/12306
- 淘寶項(xiàng)目:http://csdn.com/taobao
如果是單頁(yè)項(xiàng)目,而且單頁(yè)項(xiàng)目的路由用的是history模式,不管是vue還是react都會(huì)“刷新當(dāng)前頁(yè)面404”
這是因?yàn)檫@種(history)模式會(huì)被錯(cuò)誤的認(rèn)為向服務(wù)端發(fā)出了真請(qǐng)求,但是其實(shí)這這是前端路由變化,后端自然也沒(méi)做好相應(yīng)你的處理,所以就404了
前端配置:
vue.config.js增加如下配置:
publicPath: '/caspage/'
路由配置:
const router = new VueRouter({
mode: 'history',
base:'/caspage/',
routes
})
nginx配置:
# 這里是需要部署的二級(jí)目錄應(yīng)用配置
location /cloudChartPage {
alias /data/cloudChartPage/;
index index.html index.htm;
try_files $uri $uri/ /cloudChartPage/index.html;
}
然后重新啟動(dòng)就行了
??
vue如何部署二級(jí)目錄
有的時(shí)候,我們的域名很珍貴,除了二級(jí)域名外。
我們不僅可以把項(xiàng)目部署到當(dāng)前域名下 也可以部署到二級(jí)目錄下,這樣的話,就可以部署多個(gè)項(xiàng)目了。
比如說(shuō),我有一個(gè)域名為sslcsq.com的服務(wù)器,我想部署兩個(gè)項(xiàng)目:
- 京東項(xiàng)目:http://sslcsq.com/jingdong
- 淘寶項(xiàng)目:http://sslcsq.com/taobao
說(shuō)一下這里會(huì)遇到得問(wèn)題
普通項(xiàng)目不會(huì)有問(wèn)題,
但是如果是單頁(yè)項(xiàng)目(比如vue寫的單頁(yè)面),而且單頁(yè)項(xiàng)目的路由用的是history模式,不管是vue還是react都會(huì)出現(xiàn)一個(gè)問(wèn)題
那就是“刷新當(dāng)前頁(yè)面404”
這是因?yàn)檫@種(history)模式會(huì)被錯(cuò)誤的認(rèn)為向服務(wù)端發(fā)出了真請(qǐng)求,但是其實(shí)這這是前端路由變化,后端自然也沒(méi)做好相應(yīng)你的處理,所以就404了
如何解決
前端配置(前端看這就行了,后面找后臺(tái)配置)
在vue.config.js中增加如下配置:
publicPath: '/taobao/' ? ? ? ? ? ? ? ? ? 這里就是配置的二級(jí)目錄
路由配置如下:
const router = new VueRouter({
? mode: 'history',
? base:'/taobao/', ? ? ? ? ? ? ? ? ? ? ? ? ?這里就是配置的二級(jí)目錄
? routes
})后端nginx.conf配置如下:(注意前后端溝通~)
# 首先給要部署的項(xiàng)目分配一個(gè)服務(wù)
server {
? ? listen 8001;
? ? location / {
? ? ? ? # vue h5 history mode 時(shí)配置
? ? ? ? try_files $uri $uri/ /index.html;
? ? ? ? root html/caspage;
? ? ? ? index index.html index.htm;
? ? }
}
# 再到配置域名的主配置server上做反向代理
server {
? ? listen ? ? ? 80;
? ? server_name ?localhost;?
? ? location / {
? ? ? ? root ? html;
? ? ? ? index ?index.html index.htm;
? ? ? ? # vue-router的history模式下,刷新頁(yè)面404處理
? ? ? ? try_files $uri $uri/ /index.html;
? ? }
? ? error_page ? 500 502 503 504 ?/50x.html;
? ? location = /50x.html {
? ? ? ? root ? html;
? ? }
? ?
? ? ?
? ? ?# 這里是需要部署的二級(jí)目錄應(yīng)用配置
? ? ?location /cloudChartPage {
? ? ? ? alias /data/cloudChartPage/;
? ? ? ? index ?index.html index.htm;
? ? ? ? try_files $uri $uri/ /cloudChartPage/index.html;
? ? ?}
}新啟動(dòng)然后訪問(wèn)就可以http://sslcsq.com/taobao 或者 http://sslcsq.com/京東 看你的二級(jí)目錄配置的什么了
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue實(shí)現(xiàn)的父組件向子組件傳值功能示例
這篇文章主要介紹了Vue實(shí)現(xiàn)的父組件向子組件傳值功能,結(jié)合完整實(shí)例形式簡(jiǎn)單分析了vue.js組件傳值的相關(guān)操作技巧,需要的朋友可以參考下2019-01-01
vue+SSM實(shí)現(xiàn)驗(yàn)證碼功能
這篇文章主要介紹了vue+SSM實(shí)現(xiàn)驗(yàn)證碼功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2018-12-12
antd+vue實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證循環(huán)屬性表單的思路
今天通過(guò)本文給大家分享antd+vue實(shí)現(xiàn)動(dòng)態(tài)驗(yàn)證循環(huán)屬性表單的思路,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2021-09-09
vue項(xiàng)目中銷毀window.addEventListener事件監(jiān)聽(tīng)解析
這篇文章主要介紹了vue項(xiàng)目中銷毀window.addEventListener事件監(jiān)聽(tīng),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07
詳解如何使用vue和electron開(kāi)發(fā)一個(gè)桌面應(yīng)用
這篇文章主要為大家介紹了詳解如何使用vue和electron開(kāi)發(fā)一個(gè)桌面應(yīng)用,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-03-03
詳解vue渲染從后臺(tái)獲取的json數(shù)據(jù)
這篇文章主要介紹了詳解vue渲染從后臺(tái)獲取的json數(shù)據(jù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-07-07

