Vue CLI - 在静态文件中包含资产文件夹中的图像
Vue CLI - include image from assets folder in static file
是否可以将 assets/
文件夹中的图像包含在某些静态 .scss
文件中,作为 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)
*/
}
其中 returns 错误 This relative module was not found
。
我知道我可以简单地在我的组件或主组件中添加这些样式(范围内或非范围内)App.vue,但是,我想知道没有它是否可以实现?
我也知道我可以将这些图标添加到我的 public
文件夹中,但我希望这些图标保留在 assets/
文件夹中。
$ vue -V
$ 3.0.0-rc.5
也许是一些自定义的 webpack 配置?
谢谢
您可以通过以下方式进行管理:
background-image: url('~@/assets/some_icon.svg');
这里的关键是使用~@
作为前缀。 URL 以 ~ 为前缀的被视为模块请求。如果你想利用 Webpack 的模块解析配置,你需要使用这个前缀。例如,如果你有一个等于 @
的 src 文件夹的解析别名,如果你使用 vue-cli3,你可以使用这种类型的 URL 来强制 Webpack 解析到所需的资产资产文件夹。更多信息在这里:
handling static assets
是否可以将 assets/
文件夹中的图像包含在某些静态 .scss
文件中,作为 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)
*/
}
其中 returns 错误 This relative module was not found
。
我知道我可以简单地在我的组件或主组件中添加这些样式(范围内或非范围内)App.vue,但是,我想知道没有它是否可以实现?
我也知道我可以将这些图标添加到我的 public
文件夹中,但我希望这些图标保留在 assets/
文件夹中。
$ vue -V
$ 3.0.0-rc.5
也许是一些自定义的 webpack 配置?
谢谢
您可以通过以下方式进行管理:
background-image: url('~@/assets/some_icon.svg');
这里的关键是使用~@
作为前缀。 URL 以 ~ 为前缀的被视为模块请求。如果你想利用 Webpack 的模块解析配置,你需要使用这个前缀。例如,如果你有一个等于 @
的 src 文件夹的解析别名,如果你使用 vue-cli3,你可以使用这种类型的 URL 来强制 Webpack 解析到所需的资产资产文件夹。更多信息在这里:
handling static assets