如何使用外部 css 在 Reactjs 中设置背景图像?

Posted

技术标签:

【中文标题】如何使用外部 css 在 Reactjs 中设置背景图像?【英文标题】:How to set background image in Reactjs using external css? 【发布时间】:2021-04-03 21:14:24 【问题描述】:

我有一个使用 create-react-app 创建的应用,我想设置标题元素的背景图像。我尝试在 Home.css 中使用外部 CSS,并使用以下代码从 Home.js 导入它:

header
background-image: url(./images/bg-hero-mobile.svg);

上述方法向我显示此错误:

./src/Home.css (./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-4-1!./node_modules/postcss-loader/src??postcss!./src/Home.css) 错误:无法解析“/images/bg-hero-mobile.svg” 'C:\Users\User\Documents\own-authenticator\frontend\rca-authenticator-frontend\src'

这是我的文件结构:

【问题讨论】:

【参考方案1】:

错误:无法解析“C:\Users\User\Documents\own-authenticator\frontend\rca-authenticator-frontend\src”中的“/images/bg-hero-mobile.svg”

这是一个路径问题。 webpack 无法在给定路径上找到文件,即文件在提供的路径上不存在。

根据当前应用结构给出路径

header
background-image: url(../public/images/bg-hero-mobile.svg);

或者你可以简单的把images文件夹放到src目录下

【讨论】:

【参考方案2】:

由于create-react-app v4.0.1 的新版本无法通过css 文件访问图像,但您可以从jsxinline css 访问它。如果您想访问图像、字体等资源,您必须将它们放在src 文件夹中。在这种情况下,我必须将 images 文件夹移动到 src 文件夹并使用此代码来访问它:

header
background-image: url(./images/bg-hero-mobile.svg);

【讨论】:

以上是关于如何使用外部 css 在 Reactjs 中设置背景图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Reactjs 中重放 CSS3 动画

在 Reactjs 中使用样式化组件而不是 CSS 模块有啥好处 [关闭]

有啥方法可以将状态变量导出/传递到 ReactJS 中的外部 CSS 文件

在 ReactJS 环境中设置复选框样式

如何使用样式化组件在 reactjs 中设置 svg 样式

如何使用类对象在 Reactjs 中设置功能性无状态组件的样式