Springboot+Vue前后端分离开发--合并打包(无跨域)

碎碎念:最近参与导师一个基于spring boot+vue2的前后端分离项目,因为本人项目经验欠缺,打包部署时遇到各种跨域问题,请教学长花了好长时间才把项目部署到服务器.......经过这次艰难的部署过程,老师又对我说:这样前后端分离好像对我们没什么好处,部署还存在各种跨域问题,你能不能想办法给它改成不分离项目?于是经过查阅各种博客经验总结以及个人能力范围内,我只好按照开发分离、部署不分离的方法解决,spring boot整合vue静态资源打成一个jar包,无跨域请求即可快速部署,且有利于后续的开发和维护工作。

第一步:前端项目打包

1、vue.config.js配置

let proxyObj = {};
const CompressionPlugin = require("compression-webpack-plugin");
proxyObj['/ws'] = {
    ws: true,
    target: "ws://localhost:8081"
};
proxyObj['/'] = {
    ws: false,
    target: 'http://localhost:8081',
    changeOrigin: true,
    pathRewrite: {
        '^/': ''
    }
}
module.exports = {
    productionSourceMap: false,
    devServer: {
        host: 'localhost',
        port: 8080,
        proxy: proxyObj
    },
    
}

这里很多博客说要修改vue.config.js文件里的publicPath修改为publicPath: './',可能是大家的代码结构不同这里给我带来很多麻烦(尝试了很多次后端就是访问不到静态资源,哭晕在厕所),我这里前端不需要修改任何配置,按前后端分离开发时的打包配置就好。

2、运行npm run build,生成

### 实现Spring Boot和Vue.js前后端分离项目打包 #### 项目结构规划 对于采用Spring Boot与Vue.js构建的应用程序而言,合理的项目结构有助于简化部署流程并提高维护效率。通常情况下,前端部分会被独立出来作为一个单独的工程存在[^1]。 #### 构建工具配置 - **前端**:利用Webpack等模块化解决方案来处理Vue应用程序中的资源文件编译工作;通过vue-cli-service build命令可以将整个前端项目构建成静态资源形式。 - **后端**:借助Maven或Gradle完成Java类以及依赖库的组装操作,在pom.xml或者build.gradle里指定最终产出物的形式为jar/war包。 #### 静态资源托管方案 为了让前后两端更好地协作起来,一种常见做法是在启动时让Spring Boot加载由Vue生成出来的dist目录下的静态文件(HTML/CSS/JS)。这可以通过调整application.properties/yml里的`spring.resources.static-locations`属性指向相应位置达成目的[^4]。 ```yaml # application.yml example server: port: 8080 spring: resources: static-locations: classpath:/static/,file:${user.home}/myapp/dist/ ``` 另外还需注意资源共享(CORS)策略设置,确保API接口能被同源下的客户端正常调用[^2]。 #### 自动化集成方式 为了进一步提升工作效率,建议引入CI/CD流水线机制自动化执行测试、构建等一系列任务。比如Jenkins/GitLab CI这类平台支持自定义脚本描述具体步骤,并且能够方便地触发远程服务器上的部署动作[^3]。 #### 生产环境优化措施 当准备上线发布前,除了常规的功能验证外,还应该着重考虑性能方面的问题: - 对于图片字体图标之类的非文本型素材启用Gzip压缩传输; - 启用浏览器缓存功能减少重复请求次数; - 尽量合并多个CSS/JavaScript文件降低HTTP请求数目; - 移除必要的console.log语句防止泄露敏感信息。 最后提醒开发者关注安全防护细节,如HTTPS加密通信协议的应用、输入参数合法性校验等[^5]。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值