Vue + SpringBoot 前后端分離打包部署遇到的坑


1. 在vue項目的目錄下,用npm run build 生成dist目錄,將目錄下的static和index.html復制到SpringBoot項目下的resource目錄下

這個時候發現啟動Springboot項目,不能打開index頁面

比如: http://localhost:8087/index.html

起初百度之后一位是相對路徑和絕對路徑不正確的問題,就修改了Vue中confid下的index.js,將'/' 修改為帶有點'./'的路徑

 

后來發現還是不行吶,於是各種辦法想着解決

加了一個默認的路徑,訪問/ 或者訪問 /index  讓其跳轉到 index.html

於是想到要用模版引擎, 就加了thymeleaf,寫了一個controller方法,只要訪問根目錄就自動跳轉到index.html【此為解決方案1,以后上代碼】

難道所有的項目都要這樣去做?

仔細研究后發現,網上的教程都是將vue生成的文件,復制到SpringBoot項目下的resource目錄下的新建目錄static下,於是依葫蘆畫瓢,也就是說需要新建一個路徑static,在static目錄下放置index.html和static目錄

媽呀,換了個目錄,就可以成功訪問了~~

 

難道所有的項目都要這樣去做?為啥非得是static目錄,我就不能指定一個目錄嗎?

當然可以了,在配置文件application.properies中添加如下代碼即可

spring.resources.static-locations=classpath:/testFo

現在來講講為什么默認的非得是static呢?

因為Springboot默認的靜態資源目錄

classpath:/static
classpath:/public
classpath:/resources
classpath:/META-INF/resources

難道沒有別的方式了嗎?

有,既然是靜態資源,能不能直接放在nginx上呢。可以的【之后再講】

 

2. 部署好了,能訪問頁面了,本機啥都是好的,其他機器通過ip和端口訪問,媽呀,只有頁面,數據呢

 Solution:

這個我不得不在我所有的接口前面加個api路徑~也就是在配置文件中添加了一個默認訪問的前綴~暫時還沒有找到更好的辦法


免責聲明!

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



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