简体   繁体   English

Vue - 如何在背景图片网址中使用@

[英]Vue - how to use @ in background-image url

In <style> part, I want to use @ for the path for background-image like below:<style>部分,我想使用 @ 作为background-image的路径,如下所示:

background-image: url("@/assets/images/banner.png");

However, error occurs:但是,出现错误:

This relative module was not found:

* ./@/assets/images/banner.png in ./node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!./node_modules/vue-loader/lib/loaders/stylePostLoader.js!./node_modules/postcss-loader/src??ref--8-oneOf-1-2!./node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/pages/home/index.vue?vue&type=style&index=0&id=5b685826&scoped=true&lang=scss&

How can I resolve it?我该如何解决? I use vue-cli to generate the application.我使用vue-cli生成应用程序。

vue.config.js vue.config.js

module.exports = {
  outputDir : 'public',
  runtimeCompiler: true,
  pluginOptions: {
    webpack: {
      dir: [
        './webpack'
      ]
    }
  }
}

在 '@' 前加上 '~' ,就像吹一样

background-image: url("~@/assets/images/banner.png")

I had the same issue in a vue + webpack setup.我在 vue + webpack 设置中遇到了同样的问题。 Finally, I ended up using the resolve-url-loader for webpack which is great (see here https://www.npmjs.com/package/resolve-url-loader )最后,我最终为 webpack 使用了 resolve-url-loader,这很棒(请参阅此处https://www.npmjs.com/package/resolve-url-loader

npm install resolve-url-loader --save-dev

To correctly use it, it must be loaded between sass-loader and css-loader!要正确使用它,它必须在 sass-loader 和 css-loader 之间加载! Also, source-maps are required for loaders preceding resolve-url-loader.此外,resolve-url-loader 之前的加载器需要源映射。

To achieve that, my vue.config.js looks like:为了实现这一点,我的 vue.config.js 看起来像:

 .... module.exports = { .... chainWebpack: config => { .... config.module .rule('scss') .oneOf('vue') .use('resolve-url-loader') .loader('resolve-url-loader').options({ keepQuery: true }) .before('sass-loader'); }, css: { loaderOptions: { sass: { sourceMap: true, } } } } };

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM