vue.js - Vue CLI 使用相对路径部署到子文件夹
问题描述
使用 Vue CLI 和 Vue 2。
任何人都知道如何使用相对路径构建项目,所以我可以将它放在我服务器的任何子文件夹中,它会工作吗?(例如www.mysite.com/subfolder/)
我试过了
// vue.config.js
module.exports = {
publicPath: "",
};
它构建相对路径(即,js/app.js
而不是/js/app.js
),但应用程序不会加载。页面上什么都没有显示。
最奇怪的是所有文件都正确加载(我可以在 Chrome devtools 中检查网络选项卡),没有 JS 错误等。所以页面正在加载所有文件,但似乎在使用相对路径时拒绝安装应用程序。
我知道我可以将绝对路径添加到构建过程中,但这不是我需要的。我的客户需要能够将文件从一个子文件夹自由移动到另一个子文件夹,并且该应用程序应该可以工作而无需重新编译
PS:还尝试使用 Vite 和 Vue 3 构建项目,同样的问题。
谢谢!
解决方案
好吧,看起来只需要:
- 使用相对 publicPath 构建(空字符串)
// vue.config.js
module.exports = {
publicPath: "",
};
<base>
在最终的 HTML 中添加标签...
<base href="/subfolder/" />
对于Vite,出口应该是
// vite.config.js
export default {
...
base: "",
};
推荐阅读
- python - 当python中的输入为yes时,我想再次从头开始循环这个程序
- gitlab - gitlab 人群存在用户;在“关联账户”下找不到菜单
- android - Android webview下载pdf,xlsm为html文件
- reactjs - 在 Typescript 中反应 Hoc 组件装饰器
- laravel-5 - Vue 组件不渲染并忽略 props
- javascript - 如何与等待分离功能
- google-sheets - 如何在谷歌表格的每一页上重复/冻结一行(不是第一行)?
- java - Mocking Socket.getOutputStream() for testing Java
- html - 一起使用 Bootstrap 4 类时,过渡轻松在悬停时不起作用
- c# - 与 .Net Core 项目共享 IClaimsPrincipal/FedAuth Cookie