相信很多小夥伴在用Vue-cli安裝的腳手架開發的時候,在開發環境中項目可以很正常的運行,但是進入到生產環境,編譯打包後,放入服務器,項目就不正常了,會出現空白頁或者路由跳轉404等問題。遇到這些問題不要慌張,正確的配置加上後端的簡單配合就可以解決。
如何打包
基於Vue-Cli,通過npm run build來進行打包的操作
如何部署
將打包出來的資源,基於Vue-Cli的壹般是dist目錄下有static目錄和index.html文件,可以直接將這兩個文件扔到服務端
但有時候,我們會直接將dist文件扔到服務端
出現的問題
打包到服務器後,出現資源引用路徑的問題
打包到服務器後,出現空白頁的問題
打包到服務器後,出現引入的css的type被攔截轉換為"text/plain"問題
打包到服務器後,出現路由刷新404的問題
下面筆者根據自己Vue項目從編譯打包到正常部署服務器的經驗,來告訴大家如何解決這些問題。
壹、前端配置:
①、router配置--指定路由起始(在開發模式中,Vue項目被放在了webpack配合nodeJs生成的本地服務器的根目錄,但是在真實服務器中,項目肯定不會放在根目錄,所以要指定router的base)
router
提前和後端商量好項目部署的服務器文件夾路徑
②、編譯打包配置
進入config --> index.js
build
③、使用npm run build進行打包,至此前端能做的配置已經做完
二、後端配置:
路由跳轉出現404,主要原因是後端對這個虛擬的前端路由沒有做任何處理,服務器在找不到指定路徑下的資源時,只能向客戶端返回404。
解決辦法(Apache):進行url重寫 --- 將Vue項目所在服務器文件夾下的路徑,例如:
leibo.group/pcMall/.... 重寫為 leibo.group/pcMall/index.html
.hatccess
具體的Apache開啟allowoverride ,url重寫,後端分分鐘就解決了
如果是其他類型服務器
請自行參考/essentials/history-mode.html
總結:在單頁面部署服務器中,其實更多的是思想的改變,利用前端路由來控制用戶界面內容的變更,