是否可以在某个静态的.scss
文件中包含一个位于assets/
文件夹中的图像,作为一个background-image
呢?
我有一个_buttons.scss
的局部样式文件,其中一些按钮带有一个图标,我想将其作为background-image
添加。这些图标位于src/assets/
文件夹中。
应用程序结构:
- 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配置?
谢谢
main.scss
文件的?我在main.js
文件中导入它,相对导入对我有效。 - Luis OrduzApp.vue
文件中有@import 'main.scss'
。将 .scss 文件导入到 main.js 中是一个好的做法吗? - VuckoApp.vue
导入main.scss
完全没有问题。除非我尝试使用不存在的 URL 来设置background-image
,否则我无法重现错误。另外请注意,../assets/some_icon.svg
是正确的路径。你有一个仓库可以让我查看吗? - tony19main.js
或App.vue
导入main.scss
,但我个人更喜欢从*.vue
文件中导入 CSS,只在main.js
中设置应用程序代码。 - tony19