【问题标题】:Can`t resolve image.png in styles.css无法解析 style.css 中的 image.png
【发布时间】:2021-09-17 10:50:28
【问题描述】:

Webpack 无法构建项目,因为无法解析图像。

项目结构

project/
├─ node_modules/
├─ src/
│  ├─ assets/
│  │  ├─ images/
│  │  ├─ styles/
├─ package.json
├─ webpack.config.js

这里是 webpack.config.js

{
  test: /\.(JPG|gif|svg|gif|png)(\?v=[0-9]\.[0-9]\.[0-9])?$/,
  type: 'asset/resource',
  generator: {
    filename: 'assets/images/[name].[contenthash:7][ext]'
  },
  use: [{loader: 'url-loader'}]
},

和 main.css

.b-promo {
  background: url(../assets/images/bg.png) top no-repeat;
  background-size: cover
}

错误信息

ERROR in ./assets/css/main.css
Module build failed (from ../node_modules/mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ../node_modules/css-loader/dist/cjs.js):
Error: Can't resolve '../assets/images/bg.png' in '/home/path/to/project/src/assets/css'

【问题讨论】:

  • 从 CSS 文件到图像的路径不正确。检查一次确切的路径
  • 所以我只写一个从 CSS 文件到图像的相对路径?
  • Error: Can't resolve '../assets/images/bg.png' in '/home/path/to/project/src/assets/css' 找不到的 css 文件夹在哪里?

标签: javascript css webpack


【解决方案1】:

似乎 url() 应该将字符串作为参数see here

所以在 main.css 中尝试(并确保从 main.css 到 bg.png 文件的相对路径是正确的):

.b-promo {
  background: url("../assets/images/bg.png") top no-repeat;
  background-size: cover;
}

【讨论】:

  • 不。即使有引号也不起作用。同样的错误“无法解决”
  • @Edward 也许是相对路径的问题?不应该只是“../images/bg.png”吗?
  • 另外,看看你的 CSS 代码:不要忘记在 background-size 属性后添加分号(这不是当前问题的解决方案,但可能会导致其他问题)跨度>
猜你喜欢
  • 2020-05-24
  • 2017-12-28
  • 2019-08-30
  • 2020-05-16
  • 2017-07-05
  • 1970-01-01
  • 2019-02-26
  • 2016-10-24
  • 2015-01-08
相关资源
最近更新 更多