webpack vue v1.3忽略背景图片url

daupos2t  于 12个月前  发布在  Webpack
关注(0)|答案(1)|浏览(154)

在编译scss文件时,是否可以在vue 3.0中使用typescript忽略背景图像url?我正在编写一个SPA,它将作为父站点内的一个页面,所有背景图像都将来自父站点,因此在我的scss文件中,我有以下内容:

.loading {
      background: transparent url(/images/loading/yellow-spinner.svg) center center no-repeat;
}

字符串
在那里的图像是在主网站,而不是在SPA服务。然而,这无法编译,因为它找不到图像。我看了一下静态资产,它说把一个@在前面的网址,但这也没有工作,也没有改变它为~@
如果我将图像复制到SPA中并在SCSS中使用相对路径,则会起作用,但这会将图像复制到img文件夹中并更改编译的CSS中的URL,我不希望这样做,因为它复制了可能已缓存的资源,如果用户访问了父站点。
我还尝试使用以下命令更改文件加载器的目录以匹配父站点:

configureWebpack: {
    module: {
        rules: [
            {
                test: /\.(png|jpg|gif|svg)$/,
                use: [
                    {
                        loader: 'file-loader',
                        options: {
                            outputPath: 'images/',
                            publicPath: 'images/',
                            name: '[path][name].[ext]',
                        },
                    }
                ]
            },
        ]
    },
}


但是,当我添加这个,我得到以下错误(这也是错误,当我尝试使用@~):

Syntax Error: HookWebpackError: Cannot find module '../../Images/Loading/red-spinner.svg'


请注意,我已经添加了svg typescript shim,它在没有添加配置的情况下消除了相对路径的模块错误
使用webpack,我们只是使用复制webpack插件复制图像,当scss编译时,它似乎忽略了url-vue插件没有这个选项吗?我也尝试使用复制插件,它工作正常,但它仍然使用文件加载器编译图像

6ioyuze2

6ioyuze21#

因此,要忽略scss文件中的URL,您需要在vue.config中添加以下选项:

css: {
    loaderOptions: {
        css: {
            url: false,
        },
    },
},

字符串

相关问题