Closed Shu-Ji closed 5 years ago
由于我的项目需要在生产环境支持每个静态文件前面添加一个前缀,即需要使用 vue/webpack 的 publicPath 参数:
// vue.config.js const is_dev = process.env.NODE_ENV === 'development' module.exports = { publicPath: is_dev ? '/' : '/xyz/', // 生产环境需要添加 xyz 前缀 pluginOptions: { dll: { entry: { vue: ['vue'] }, open: !is_dev }, }, ... }
其中 xyz 是我的项目的名称,作为 url 的前缀。
在最终 yarn build 后,dist/index.html 中:
<script src=js/vue.f86b30a3.dll.js></script> <script src=/xyz/js/chunk-vendors.691a8960.js></script> <script src=/xyz/js/app.ba5cf1c4.js>
可以看到 vue 成功支持了 publicPath 参数,添加了前缀(后两个script 标签),但是 dll 的 自动 inject 的 js(第一个 script 标签)的 url 不正确,导致: 我本来是要获取 http://xxx.com/xyz/js/vue.f86b30a3.dll.js, 但是取成了 http://xxx.com/js/vue.f86b30a3.dll.js ,服务器上面不存在这个url。
注:其中 xyz 是通过 nginx 代理的,项目里面没有这个目录。
@fingerpan 有时间能否看下这个问题呢?
@Shu-Ji 好的
由于我的项目需要在生产环境支持每个静态文件前面添加一个前缀,即需要使用 vue/webpack 的 publicPath 参数:
其中 xyz 是我的项目的名称,作为 url 的前缀。
在最终 yarn build 后,dist/index.html 中:
可以看到 vue 成功支持了 publicPath 参数,添加了前缀(后两个script 标签),但是 dll 的 自动 inject 的 js(第一个 script 标签)的 url 不正确,导致: 我本来是要获取 http://xxx.com/xyz/js/vue.f86b30a3.dll.js, 但是取成了 http://xxx.com/js/vue.f86b30a3.dll.js ,服务器上面不存在这个url。
注:其中 xyz 是通过 nginx 代理的,项目里面没有这个目录。