1. 程式人生 > 實用技巧 >SpringBoot+Vue 前後端合併部署

SpringBoot+Vue 前後端合併部署

前後端分離開發專案

前端vue專案

服務端springboot專案

如何將vue的靜態資源整合到springboot專案裡,通過啟動jar包的方式部署服務。

前端專案執行npm run build命令進行打包,會自動生成打包後的dist目錄檔案所有東西放置在Resources/static檔案下,如下圖

  

此處index.html檔案的資源路徑(需要在前端打包配置中進行配置)應該如下圖:

  

對應的springboot:application.yml需新增:

server:
    port: 8080
    tomcat:
        uri-encoding: UTF-8
spring:
    application:
        name: 
"xxxx" servlet: application-display-name: myProject mvc: static-path-pattern: /static/**

為了解決vue-router路由的路徑無法正常解析

將vue-router中的路徑加上統一的字首“/vueXX”(自定義),然後在springboot專案中自定義過濾器,攔截帶“/vueXX”的路徑,將請求轉發到“/index.html”(將vue的路由資源交給路由處理)。

啟動類中需新增:

public class MyProJect {
    public static
void main(String[] args) { SpringApplication.run(MyProJect.class,args); }    @Bean public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer(){ return factory -> { ErrorPage error404Page = new ErrorPage(HttpStatus.NOT_FOUND, "/static/index.html"
); factory.addErrorPages(error404Page); }; } }

如果在專案中配置了過濾器:需要在過濾器中去除對應的資原始檔字尾的過濾條件。

配置至此,啟動專案應該是可以訪問到頁面。可以在瀏覽器開啟除錯工具,檢視NetWork下的請求地址是否成功再進行排查。