SSM+Vue前后端分离项目部署腾讯云服务器的若干坑
SSM+Vue前后端分离项目部署腾讯云服务器的若干坑
1.访问服务器index.html页面报404,访问静态文件css,js等报404
1.1找不到首页
在访问的URL中加上tomcat/webapps下你部署的项目文件名 路径格式为 http://IP:Port/项目名/dist/index.html
1.2css,js报404
1.2.1有可能是没有配springmvc的配置文件不对静态资源处理
<!-- 让mvc不处理静态资源--> <mvc:default-servlet-handler/>
1.2.2 vue配置静态文件路径
见3.2配置vue.config.js文件配置静态资源路径和输出文件目录
2.tomcat无法启动或关闭
经常是配置文件server.xml文件中的配置错误
3.前后端跨域问题
3.1后端设置
在使用 Spring Boot 做服务端,做前后端分离的项目时候,难免会出现跨域的问题,这里我使用spring 自带注解去解决跨域问题@CrossOrigin 在每个类上面加上这个注解,或者使用 CorsFilter 去解决,这里我说一下使用 @CrossOrigin等一些问题,@CrossOrigin(origins = “*") 这里在本地访问是没有一点问题,可以进行跨域访问,但是一部署到服务器上面就立马抛出了 跨域访问的异常,访问就是不能通过,在一查资料发现, 在方法名前增添如下设置后,发现成功了
@CrossOrigin(origins = "*",allowCredentials = "true",allowedHeaders = "*")
3.2前端设置
vue-cli4 配置生产环境文件(txt文本文件就可以),默认把项目名加上即可,如ssm项目
NODE_ENV:’production‘ VUE_APP_BASE_URL="/ssm"
配置开发环境
NODE_ENV:’development‘ VUE_APP_BASE_URL="/api"
配置开发环境代理(注意设置静态资源)
//vue.config.js
module.exports = {
publicPath: "./",
// 输出文件目录
outputDir: "dist",
// 静态资源存放的文件夹(相对于ouputDir)
assetsDir: "assets",
// eslint-loader 是否在保存的时候检查(果断不用,这玩意儿我都没装)
lintOnSave: false,
// 我用的only,打包后小些
// compiler: false,//有
productionSourceMap: true, // 不需要生产环境的设置false可以减小dist文件大小,加速构建
// css相关配置(我暂时没用到)
// css: {
// 是否使用css分离插件 ExtractTextPlugin
// extract: true,
// 开启 CSS source maps?
// sourceMap: false,
// css预设器配置项
// loaderOptions: {},
// 启用 CSS modules for all css / pre-processor files.
// modules: false
// },
// webpack-dev-server 相关配置
devServer: {
host:127.0.0.1,
// 项目启动端口之后会变成3000
port: 9527,
proxy: {
/api: {
target: http://127.0.0.1:8080,//开发时用于后端
// 在本地会创建一个虚拟服务端,然后发送请求的数据,并同时接收请求的数据,这样服务端和服务端进行数据的交互就不会有跨域问题
changeOrigin: true,
// ws: true,
pathRewrite: {
^/api: /
// 替换target中的请求地址,也就是说以后你在请求http://api.jisuapi.com/XXXXX这个地址的时候直接写成/api即可
}
}
}
}
}
js请求样例
url:process.env.VUE_APP_BASE_URL+/book/allbook
4.本地sql正常,服务器报sql错误
检查数据库配置文件是否和服务器上的数据库一致,如用户名,密码,数据库名等。
下一篇:
如何搭建自己的个人博客
