前言
- 一般情况,我们会在构建时使用env来构建出不同publicpath的应用,但是如果不让你使用env(比如没法区分环境变量),我最近遇到了这个问题,分享下解决方法。
vm模板或者public模板
- 我们当时的html是后端部署的,也就用的vm,如果能改index.html,那么跟我说的也是同样的方式。
- webpack中有个
__webpack_public_path__
,这个是他的默认值。 - 动态修改时,需要将入口的该值等于window上对象,再利用模板将window上对象等于你cdn地址即可。
__webpack_public_path__ = window.publicPath || './';
- 如果你有eslint或者ts,需要把它忽略,要放到入口第一句,import上面。不用怀疑,放import上面可以运行。
- 在模板中修改:
window.publicPath='xxxxxx'