【发布时间】:2019-03-06 10:45:37
【问题描述】:
我正在开发一个使用 Vue cli 3 生成的 Vue 项目。我想在同一个代码库中使用不同的供应商。
我需要一些可以根据变量加载不同图像/样式的东西。例如:
<!-- In HTML templates -->
<img :src="`@/assets/vendor_name_here/banner.jpg`" />
/* In SCSS */
@import "assets/vendor_name_here/style/bootstrap";
其中vendor_name_here是一个可以在环境中设置的变量。请注意,上述方法不起作用。
来自 Angular 背景,只需将应用程序或项目添加到配置中即可实现类似的效果。但是,Vue 文档(我能找到的)中没有记录这样的内容。
那么 Vue 中是否有类似的东西?
更新:
我刚刚发现以下内容适用于 HTML 图像:
<img :src="require(`@/assets/${VUE_APP_VENDOR}/banner-large.jpg`)" />
所以 SCSS 文件的问题仍然存在。
更新 2:
显然,同样的方法也适用于 SCSS 文件。我在脚本块中添加了以下内容:
require(`./assets/${process.env.VUE_APP_VENDOR}/style/bootstrap.scss`);
现在它可以工作了:)。
【问题讨论】: