vue2
1.添加vue-cli配置
在vue.config.js中添加如下配置
const { defineConfig } = require('@vue/cli-service')
module.exports = defineConfig({
transpileDependencies: true,
publicPath: './', // 基本路径
outputDir: 'dist', // 输出文件目录
assetsDir: 'assets', //静态资源文件夹
})
2.修改路由模式
路由模式的取消历史模式
const router = new VueRouter({
// mode: 'history',
base: process.env.BASE_URL,
routes
})
3.修改axios实例参数
开发模式下会通过配置代理解决跨域问题,但是该配置在打包后的静态资源中不起作用,所以需要修改axois的baseURL,否则打包后就直接向 /api 这个东东发起请求了,但这玩意儿啥也不是,所以需要修改成真实的接口再打包。然后就可以直接build了
但是我的后端配置了允许所有请求源,所以静态资源通过文件协议也可以访问到数据
如果打包后访问时出现的 CORS 错误,就应该通过部署到支持 HTTP 协议的服务器解决,而不是依赖于 devServer
的代理配置。
4.上线服务器
传到apache服务管理的文件夹
访问成功!!!!!!!!!!
vue3
1.修改vite.config.js配置
export default defineConfig({
//添加基础路径
base: './', //这个很重要!!!不加这一行打包后整个资源都无法访问
plugins: [vue()],
build: {
target: 'es2015',
outDir: 'dist',
rollupOptions: {
output: {
entryFileNames: '[name]-[hash].js', // 引入文件名的名称
chunkFileNames: '[name]-[hash].js', // 包的入口文件名称
assetFileNames: '[name]-[hash].[ext]' // 资源文件像 字体,图片等
}
}
},
})
2.修改路由模式
也是修改成hash模式,暂不清楚为什么,历史模式打包的资源会无法正常访问
3.修改axios实例参数
修改axios参数,参考vue2,一模一样的步骤
4.上线服务器
访问成功~~~~~~~~yahoo!我的毕设有救咯!!
项目地址已开源至: Zemelee/mall (github.com)