在我的Vue-CLI项目中,所有映像都位于public/media
文件夹中。
在Vue文件中,我可以引用路径为/media/image.png
的公共文件夹图像
当我试图在我的地盘设置背景
background-image: url('/media/image.png');
它抛出以下错误:
Module not found: Error: Can't resolve '/media/image.png' in 'myPath/src'
看起来默认情况下sass正在/src
文件夹中查找图像。
是否有办法使用/public
文件夹中的图像?
2条答案
按热度按时间fcg9iug31#
尝试使用
这里的关键是使用~@作为前缀。以~为前缀的URL被视为模块请求。
r7xajy2e2#
此消息似乎是由css-loader引起的
CSS加载器具有“URL”选项,该选项可以被设置为假以防止其解析路径。
如果设置为false,css-loader将不解析url或image-set中指定的任何路径
在vue.config.js中,您可以按如下方式进行配置:
请注意,盲目使用
url: false
可能会阻止您的项目在构建工件中包含一些静态资产,如字体。如果这对您来说是个问题,您应该传递一个回调函数,并且您不能以不同的方式导入其他资产。重新考虑如何导入静态资产(如图像)可能是值得的,例如,将它们作为项目的一部分包含在
src/assets
目录中,这样它们(默认情况下)就被复制到dist(或您可能已更改名称的任何内容)目录中以进行部署。