前端部署步驟
現在是本地的部署步驟,本地部署是為了測試下包部署的資源引用是否正確。
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
他們兩個寫的比較詳細,解決了我的問題,謝謝~~