【发布时间】:2019-01-03 00:51:35
【问题描述】:
是否可以将assets/ foder 中的某个静态.scss 文件中的图像作为background-image 包含在内?
我有一个_buttons.scss 部分按钮,一些按钮有一个图标,我想将其添加为background-image。图标位于src/assets/ foder。
应用结构:
- src
- assets
some_icon.svg
- components
- scss
_buttons.scss
main.scss
- views
App.vue
main.js
router.js
在_buttons.scss:
.some-selector {
background-image: url(../assets/some_icon.svg)
/* also tried
background-image: url(./assets/some_icon.svg)
background-image: url(/assets/some_icon.svg)
background-image: url(assets/some_icon.svg)
*/
}
这会返回带有This relative module was not found 的错误。
我知道我可以在我的组件或主 App.vue 中简单地添加这些样式(范围或不范围),但是,我想知道如果没有它是否可以实现?
我也知道我可以将这些图标添加到我的 public 文件夹中,但我希望这些图标保留在 assets/ 文件夹中。
$ vue -V
$ 3.0.0-rc.5
也许是一些自定义的 webpack 配置?
谢谢
【问题讨论】:
-
我认为这个答案解决了你的问题Resolving background-image URLs in CSS files for Webpack
-
您如何使用
main.scss文件?我将它导入到main.js文件中,并且相对导入对我有用。 -
@LuisOrduz 我的
App.vue文件中有@import 'main.scss'。在 main.js 中导入 .scss 文件是一个好习惯吗? -
@Vucko 从
App.vue导入main.scss完全没问题。除非我尝试background-image不存在的 URL,否则我无法重现该错误。另请注意../assets/some_icon.svg是正确的。您有要查看的仓库吗? -
@tony19 刚刚尝试了您的建议,它确实有效。不知道您可以在
main.js中导入.scss文件。您能否解释一下为什么它可以作为答案,我会接受。
标签: webpack vue.js vuejs2 vue-cli