我想在我的一个组件中使用assets文件夹中的svg图像作为背景图像。下面是我的组件的一个例子:
<template>
<div class="container"></div>
</template>
<script>
export default {
name: 'component'
}
</script>
<style scoped lang="scss">
.container {
height: 40px;
width: 40px;
background-image: url('@/assets/image.svg');
}
</style>
但图像显示不出来。道路是正确的。我错在哪里?谢谢你的帮助
7条答案
按热度按时间ztyzrc3y1#
正如注解中突出显示的Max Martynov,您应该使用
url('~@/assets/image.svg')
。Webpack在解析资产时有一些特定的规则[1]。
为了解析别名(
@
),正如您正在使用的那样,Webpack必须将请求作为模块请求处理。使用前缀~
强制webpack将请求视为模块请求,类似于require('some-module/image.svg')
。参考资料
m3eecexj2#
我建议使用风格绑定。我发现这个链接真的很有用。
这里是一个使用引导卡的示例
该图像位于src/assets/images/cards. jpg中
avkwfej43#
确保图像扩展名为小写。如果图像有大写扩展名,请将其更改为小写,否则将不起作用。
zvokhttg4#
这就是我的工作。
slideshow
看起来像:0aydgbwb5#
对我起作用的是以下几点:
1.将所需图像移动到公用文件夹(myapp/public/assets/myimage.png)
1.构建项目。这会将资源从public文件夹移动到dist文件夹。
npm run build
1.现在你可以像这样在组件中使用你的图像:
56lgkhnf6#
如果您的vuejs使用
file-loader
,您将利用import
。lrl1mhuk7#
如果你使用的是Vue 3(TypeScript)和Vite 3.2+,在你的
vite.config.ts
中,按如下所示适当地设置你的base。然后,如果你的图像,img.jpg,在
public/images
文件夹中,你可以在你的css中引用它:在为生产而构建时,将解决以下问题: