我在部署使用Webpack CLi构建的Vue JS应用程序时遇到问题。如果上传到根目录中,一切都很好,但在子文件夹中,所有链接都会断开。我添加了一个基本href:
<base href="/dist/">
脚本加载,但Webpack创建的所有资源路径都被破坏,图像和字体不会加载,因为它们指向根目录。有人能帮忙吗?
2ul0zpep1#
对于Vue CLI 3来说,这很简单。编辑你的vue.config.js(如果没有,在项目根目录下创建)并添加以下行:
vue.config.js
module.exports = { baseUrl: "./" };
或者你想要的任何子目录。你也可以根据NODE_ENV来决定。参见文档。
NODE_ENV
module.exports = { baseUrl: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/' }
更新
正如下面的注解中所提到的,对于Vue CLI 3.3+,使用publicPath属性而不是baseUrl。
publicPath
baseUrl
kuuvgm7e2#
假设你使用的是vue-cli中的webpack模板,你需要编辑config/index.js中的assetsPublicPath属性-注意build和dev都有一个属性查看文档中的Handling Static Assets部分以获取更多信息。
assetsPublicPath
build
dev
CLI v3+用户的更新链接:https://cli.vuejs.org/guide/html-and-static-assets.html请注意,该属性仅称为publicPath
eoigrqb63#
如果您的应用安装了npm install -g @vue/cli vue ui然后你应该创建文件vue.config.js在顶部项目文件夹(package.json所在的地方)并像上面一样粘贴。
npm install -g @vue/cli vue ui
nc1teljy4#
对于Vite搭建的Vue 3项目,编辑vite.config.js文件,添加/修改base属性如下:
vite.config.js
base
export default defineConfig({ /* ... */ base: './', /* ... */ })
4条答案
按热度按时间2ul0zpep1#
对于Vue CLI 3来说,这很简单。
编辑你的
vue.config.js
(如果没有,在项目根目录下创建)并添加以下行:或者你想要的任何子目录。
你也可以根据
NODE_ENV
来决定。参见文档。更新
正如下面的注解中所提到的,对于Vue CLI 3.3+,使用
publicPath
属性而不是baseUrl
。kuuvgm7e2#
假设你使用的是vue-cli中的webpack模板,你需要编辑config/index.js中的
assetsPublicPath
属性-注意build
和dev
都有一个属性查看文档中的Handling Static Assets部分以获取更多信息。
更新:
CLI v3+用户的更新链接:https://cli.vuejs.org/guide/html-and-static-assets.html
请注意,该属性仅称为
publicPath
eoigrqb63#
如果您的应用安装了
npm install -g @vue/cli vue ui
然后你应该创建文件vue.config.js在顶部项目文件夹(package.json所在的地方)并像上面一样粘贴。nc1teljy4#
对于Vite搭建的Vue 3项目,编辑
vite.config.js
文件,添加/修改base
属性如下: