部署Vue項目到服務(wù)器后404錯誤的原因及解決方案
一、Vue項目部署步驟
在前后端分離的開發(fā)模式下,前端項目獨立部署通常涉及以下步驟:
- 構(gòu)建項目:Vue項目構(gòu)建后生成一系列靜態(tài)文件。
- 上傳文件:使用scp命令將構(gòu)建好的文件上傳至服務(wù)器的web容器指定靜態(tài)目錄。
scp dist.zip user@host:/xx/xx/xx
- 配置Web服務(wù)器:以Nginx為例,配置服務(wù)器以指向靜態(tài)文件目錄。
server { listen 80; server_name www.xxx.com; location / { index /data/dist/index.html; } }
- 重啟Nginx:檢查配置并重啟Nginx以應(yīng)用更改。
nginx -t nginx -s reload
- 訪問域名:在瀏覽器輸入域名以訪問部署的應(yīng)用。
以上是最直接的一種部署方式。更高級的部署方式,如自動化、鏡像、容器和流水線部署,本質(zhì)上是將此邏輯抽象和程序化,本文不展開討論。
二、404錯誤原因及解決方案
錯誤場景
- 問題描述:Vue項目在本地運行正常,但部署到服務(wù)器后刷新頁面出現(xiàn)404錯誤。
- 錯誤定位:HTTP 404錯誤表示請求的資源不存在。
原因分析
- History模式問題:在Vue單頁應(yīng)用(SPA)中,所有用戶交互通過動態(tài)重寫當前頁面實現(xiàn)。構(gòu)建物只產(chǎn)出
index.html
,而nginx
配置可能未涵蓋所有路由。 - Hash模式無問題:Hash模式不會將hash值包含在HTTP請求中,因此不會因hash變化重新加載頁面,避免了404錯誤。
解決方案
- 修改Nginx配置:配置所有頁面請求都重定向到
index.html
,交由前端路由處理。
server { listen 80; server_name www.xxx.com; location / { index /data/dist/index.html; try_files $uri $uri/ /index.html; } }
修改后重啟Nginx。
nginx -s reload
- 覆蓋所有路由:在Vue應(yīng)用中覆蓋所有路由情況,并提供404頁面。
const router = new VueRouter({ mode: 'history', routes: [ { path: '*', component: NotFoundComponent } ] })
其他后端配置方案(如Apache、Node.js)的核心思想類似,本文不再詳述。
到此這篇關(guān)于部署Vue項目到服務(wù)器后404錯誤的原因及解決方案的文章就介紹到這了,更多相關(guān)部署Vue到服務(wù)器后404內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue實現(xiàn)動態(tài)表單動態(tài)渲染組件的方式(1)
這篇文章主要為大家詳細介紹了vue實現(xiàn)動態(tài)表單動態(tài)渲染組件的方式,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-04-04Vue.use與Vue.prototype的區(qū)別及說明
這篇文章主要介紹了Vue.use與Vue.prototype的區(qū)別及說明,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-12-12vue中使用heatmapjs的示例代碼(結(jié)合百度地圖)
這篇文章主要介紹了vue中使用heatmapjs的示例代碼(結(jié)合百度地圖),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-09-09Vue使用高德地圖搭建實時公交應(yīng)用功能(地圖 + 附近站點+線路詳情 + 輸入提示+換乘詳情)
這篇文章主要介紹了vue中使用高德地圖搭建實時公交應(yīng)用(地圖 + 附近站點+線路詳情 + 輸入提示+換乘詳情),主要是讓大家熟悉下高德地圖在vue中的使用及vue的常用指令,需要的朋友可以參考下2018-05-05用Vue.js方法創(chuàng)建模板并使用多個模板合成
在本篇文章中小編給大家分享了關(guān)于如何使用Vue.js方法創(chuàng)建模板并使用多個模板合成的相關(guān)知識點內(nèi)容,需要的朋友們學習下。2019-06-06element組件中自定義組件的樣式不生效問題(vue scoped scss無效)
這篇文章主要介紹了解決element組件中自定義組件的樣式不生效問題(vue scoped scss無效),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-09-09