vue包部署在tomcat上,解決資源路徑問題


前端部署步驟

現在是本地的部署步驟,本地部署是為了測試下包部署的資源引用是否正確。

1.首先執行npm run build ,build出的包是dist文件夾:

2.然后我把包傳入了公司內網,哈哈,我是外網開發,內網部署。

在D:\code\IEDS-inner\dist目錄下執行命令: jar -cvf ieds.war *

這一步是將build出的前端包大包成tomcat自動解壓的war包。
3.把ieds.war放入D:\apache-tomcat-8.0.50\webapps目錄下。
4.在D:\apache-tomcat-8.0.50\bin路徑下運行startup.bat,雙擊就行了,這個時候會解壓出ieds這個文件夾。

5.這個時候訪問本地的http://localhost:8080/ieds就可以了

出現的問題——資源引用不正確

 我這個是vue-cli,webpack構建的工程。build文件的配置和vue-cli拉下來的包是一樣的。

 默認打包的css、js等資源,路徑都是絕對的。

如果部署是放在webapps/ROOT,然后直接訪問根目錄http://localhost:8080就可以。所有資源按照路徑都可以找到。但是標准的應該放在ROOT同級目錄,就是我上面步驟中說的。

這樣我們需要訪問的是http://localhost:8080/ieds,就會出現css資源、js資源或者圖片資源引用不正確,導致界面出不來。

打開控制台可以看到引用路徑是:http://localhost:8080/static/css/app.7856a6cdfa67d57a9e362325348f2e4a    404 not fond,類似這種錯誤,就是資源引用相對路徑不對啦。

解決方法

修改build下的utils,在generateLoaders方法里面加個publicPath節點,如截圖所示,這個地方的路徑寫法根據實際情況來寫。

然后,光着一步還是沒有解決,於是我接着找啊找啊,發現還需要在webpack.pro.config.js文件中的output對象中加上publicPath:

改完這些我重新打包了,重新部署,再訪問http://localhost:8080/ieds就成功啦,重定向到我設置的Login界面了。

 

參考資料:

https://www.cnblogs.com/jzm53550629/p/8041200.html

https://www.cnblogs.com/moqiutao/p/7496718.html

他們兩個寫的比較詳細,解決了我的問題,謝謝~~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM