在css背景图像中反应公共文件夹的路径

Fre*_*e09 16 html css json reactjs

我正在使用 Create-React-App 并且我想为我的标题部分添加背景图像,我是这样做的:

background-image: url('~/Screenshot_11.png');
Run Code Online (Sandbox Code Playgroud)

在此之后,我收到此错误:

./src/styles/main.scss (./node_modules/css-loader/dist/cjs.js??ref--6-oneOf-5-1!./node_modules/postcss-loader/src??postcss!. /node_modules/sass-loader/lib/loader.js??ref--6-oneOf-5-3!./src/styles/main.scss) 找不到模块:您试图导入 ../../。 ./../../../../Screenshot_11.png 位于项目 src/ 目录之外。不支持 src/ 之外的相对导入。

我在 package.json 中设置了主页

"homepage": "http://localhost:3000",
Run Code Online (Sandbox Code Playgroud)

在我的旧项目中,但今天我无法正确导入它。

Fre*_*e09 18

他们已经改变了,但我不知道为什么。工作路径:

background-image: url('/Screenshot_11.png');
Run Code Online (Sandbox Code Playgroud)

编辑 2021

对于认为它不起作用的人:

https://codesandbox.io/s/agitated-turing-gsnr3

  • 对于公共文件夹中的图像,这对我来说仍然不起作用。 (9认同)
  • 对于像我这样努力让 SRC 文件夹中的 CSS 与 PUBLIC 文件夹中的图像一起使用的人,请参阅此处将图像移动到 SRC 文件夹的建议背后的说明 https://github.com/facebook/create-react- app/issues/1248#issuecomment-266313612 正如链接中所解释的,“您不应该需要公共图像;构建过程将在编译时将图像从 src/ 复制到 build/ (并相应地更新路径)。” (2认同)

zpe*_*hov 6

对于公共文件夹中的图像,这仍然对我不起作用。

2021 年 3 月 19 日更新

关于在 .css 文件中使用 <ROOT/public/images>。

这似乎是 create-react-app (react-scripts) 包 v4.x 中的一个重大更改(将被视为错误?)。
更准确地说,在包 'css-loader' v4.x 中。
3.x 分支可以正常工作。

这是 github repo 上的相应问题:
https : //github.com/facebook/create-react-app/issues/9870
(实际上还有几个)。

没有修复(还)。(将是?..)
但是那里提到了一些解决方法。使用哪一个...这取决于你的项目,我想。

一些解决方法:


小智 5

您可以将该图像导入为

import Background from './Screenshot_11.png'
Run Code Online (Sandbox Code Playgroud)

并使用

background-image: `url(${Background})`
Run Code Online (Sandbox Code Playgroud)