【问题标题】:Vuejs in production: prefix static path生产中的 Vuejs:前缀静态路径
【发布时间】:2017-12-31 13:21:17
【问题描述】:

上下文

我正在构建一个 VueJS 应用程序,我想将它推送到生产环境中。我已经使用 npm run build 生成了文件,并将它们上传到服务器 (IIS) 上。

我在此服务器上有很多其他应用程序,我无法更改它的工作方式。

这是一个假的例子来帮助我解释我的问题:

mydomain.com/app1 将重定向到文件夹app1 下的网络应用程序。 为了添加我的 VueJS 项目,我创建了一个新文件夹 - 比如说 vueapp - 我可以通过 mydomain.com/vueapp 访问它。

问题是:vue生成的静态路径不是vueapp为前缀。 index.html 中的路径不是我想要的:对于 vue 请求,我得到的是 mydomain.com/static/** 而不是 mydomaim.com/vueapp/static/**

我想告诉 webpack 为 index.html 的路径添加前缀,但我无法让它工作。

assetsSubDirectory

config/build.js 让我们可以更改资产子目录(默认为static)。所以我可以将它设置为vueappPrefix/static,但当然,这不起作用。

  • 预期:mydomain.com/vueapp/vueappPrefix/static/*
  • 我得到了什么:mydomain.com/vueappPrefix/static

这很明显。

当然,我可以手动编辑index.html 或添加脚本来执行此操作,但我想知道是否有更简洁的方法来执行此操作。

非常感谢。

【问题讨论】:

  • 如何为您的 VUE 应用程序创建子域或另一个域 - 其中文档根指向 vueapp 文件夹?
  • 那是个好主意,可惜我做不到。基础设施非常具体,这样做不符合要求。不过非常感谢!

标签: webpack vue.js


【解决方案1】:

更改 assetsPublicPath 对我有用。

在这种情况下,它会是:

assetsPublicPath: '/vueapp/'

更新 (11/20):要在较新版本的 vue-cli 中执行相同操作,cmets 中提到了一个选项。

【讨论】:

  • 我很惭愧。非常感谢!
  • 如果使用 vue3-cli,它将是 assetsDir in vue.config.js
猜你喜欢
  • 1970-01-01
  • 2015-12-18
  • 2020-10-23
  • 1970-01-01
  • 1970-01-01
  • 2014-05-27
  • 2017-07-22
  • 1970-01-01
  • 2016-06-25
相关资源
最近更新 更多