vue在服务器环境使用相对路径
vue 使用相对路径
当服务器下不单单运行一个项目时,根目录下会有多个项目,vue 使用默认的根路径打包项目时,项目中文件的依赖会去根目录下查找,而出现找不到当前路径下所依赖的 js 与 css 文件的情况,故应在 vue.config.js 中将默认的基础路径设置为相对路径,即可在多项目服务器下正确运行了。
module.export = {
// 默认的baseUrl为"/"
baseUrl: "./"
};
切记!!! vue history 模式不要使用相对路径的 baseUrl
相对 baseUrl 的限制
相对路径的 baseUrl 有一些使用上的限制。在以下情况下,应当避免使用相对 baseUrl:
- 当使用基于 HTML5 history.pushState 的路由时;
- 当使用 pages 选项构建多页面应用时。
history 模式要对服务器进行配置,详见官方文档
2019 年 3 月 8 日更新
由于项目几乎都不会放在根目录下,而且项目都需要使用 history 模式,故无法在基础路径中使用相对路径,因此应该尽量约定好项目在服务器上的目录名,并在基础路径上以绝对路径方式配置。注意,vue-cli 3.3 版本后使用 publicPath 替代了原来 vue.config.js 中 baseUrl 的配置。
module.exports = {
publicPath: process.env.NODE_ENV === 'production'
? '/production-sub-path/'
: '/'
}