当前位置: 首页 > 知识库问答 >
问题:

Webpack不会用背景图像编译我的SASS

呼延钱明
2023-03-14

我在编译SASS代码时遇到了问题。我想使用一个背景图像,但是当我尝试这样做时,我所有的css都停止工作了。

@import "~bootstrap/scss/bootstrap";
@import "constants";

#crossroad {
  position:relative;
  background-image: url("../assets/bg.jpg");
}
const path = require('path');

module.exports = {
  entry: './src/app.js',
  output: {
    filename: 'bundle.js',
    path: path.resolve(__dirname, 'dist')
  },
  mode: "development",
  module: {
    rules: [
      {
        test: /\.(scss|png|jpg)$/,
        use: [
          {
            // Adds CSS to the DOM by injecting a `<style>` tag
            loader: 'style-loader'
          },
          {
            // Interprets `@import` and `url()` like `import/require()` and will resolve them
            loader: 'css-loader'
          },
          {
            // Loader for webpack to process CSS with PostCSS
            loader: 'postcss-loader',
            options: {
              plugins: function () {
                return [
                  require('autoprefixer')
                ];
              }
            }
          },
          {
            // Loads a SASS/SCSS file and compiles it to CSS
            loader: 'resolve-url-loader'
          },
          {
            // Loads a SASS/SCSS file and compiles it to CSS
            loader: 'sass-loader'
          }
        ]
      }
    ]
  }
};


^
@./src/assets/bg.jpg 2:26-236
@./node_modules/css-loader/dist/cjs.js!./node_modules/postcss-loader/src??ref--4-2!./node_modules/resolve-url-loader!./node_modules/sass-loader/dist/cjs.js!

我尝试将resolution-url-loader添加到我的webpack配置中,但没有任何改变。

共有1个答案

靳涵亮
2023-03-14

您应该像这样使用文件加载器处理文件

rules: [{
                test: /\.scss$/,
                use: [
                    'style-loader',
                    MiniCssExtractPlugin.loader,
                    {
                        loader: "css-loader",
                        options: {
                            minimize: true,
                            sourceMap: true
                        }
                    },
                    {
                        loader: "sass-loader"
                    }
                ]
            },
            {
                test: /\.(js|jsx)$/,
                exclude: /node_modules/,
                loader: ["babel-loader", "eslint-loader"]
            },
            {
                test: /\.(jpe?g|png|gif)$/i,
                loader: "file-loader"
            },
            {
                test: /\.(woff|ttf|otf|eot|woff2|svg)$/i,
                loader: "file-loader"
            }
        ]

您可以从这里查看代码

 类似资料:
  • 除了背景颜色,也可以使用背景图像来实现各种复杂、有趣的背景效果。CSS中,使用 background-image属性来定义背景图像的路径,取值为 none | url,默认值为 none。 url 可以是相对路径,也可以是绝对路径。使用相对路径时,url 是相对于 css 所在的文件,而不是要设置样式的HTML文件。如,下面代码表示,使用 css 文件所在目录下的 img 文件夹下的图像 bg.g

  • 下面的外部CSS页面示例中的快速简单问题; 我知道它们会影响不同的元素选择器,我的问题是使用背景和背景图像有什么区别?一方可以访问另一方的特定属性吗?谢谢你。

  • 问题内容: 这是一个非常简单的程序,我已尽力而为,但JPanel并未提供背景图片。我只希望面板上有一个简单的背景图像。 这是我的代码: 提前致谢 问题答案: 更换 与

  • 我正在尝试在javaFX场景中加载背景图像。我在这里找到的答案不起作用。窗口打开,但它是空白的(没有图像)。

  • 我对flutter非常陌生,我正在做一个有趣的应用程序。我想添加一个背景图像到我的应用程序,但我找不到如何。我知道我必须把它放在中,但我找不到怎么放。这是我的代码:

  • 问题内容: 假设我要在CSS中渲染箭头,箭头应具有头部,尾部和灵活的宽度,以便可以包含文本。我当然可以创建多个div来获得所需的内容,但是如何在CSS3中完成呢? 我可以使用多个背景图片: 的HTML: 这给了我一个带有箭头和尾巴的透明中间部分。似乎不可能在中间部分指定颜色。 仅使用一张背景图像,您可以执行以下操作: 我知道这在很多方面都是可行的,但是背景颜色属性是否真的从速记定义中丢失了? 问题