You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Create React App(CRA)的CSS中引用public文件夹图片?

解决Create React App中CSS引用public文件夹图片的问题

嘿,我之前也碰到过一模一样的情况!不用折腾移图片或者eject项目,Create React App本身就支持直接引用public文件夹里的静态资源,只要用对路径就行,具体方法如下:

  • 使用根目录绝对路径引用
    因为public文件夹是CRA项目的静态资源根目录,打包后里面的文件会直接放在项目的根路径下。所以你只需要在CSS里用绝对路径指向图片即可,比如:

    .target-element {
      background-image: url('/example.png');
    }
    

    这里的/就代表public文件夹的根路径,CRA会自动识别这个路径,不会触发“src目录之外”的报错——因为这种方式是直接作为静态资源访问,而不是通过import语法导入模块,完美避开了webpack对src外文件的限制。

  • 如果图片在public的子文件夹里
    比如你的图片存在public/assets/images/example.png,那路径就写成:

    .target-element {
      background-image: url('/assets/images/example.png');
    }
    

    同样是以/开头,直接从根路径定位到图片位置。

为什么之前会报错?

你之前用相对路径(比如../public/example.png)的时候,CRA的webpack配置会把这个路径当成需要导入的模块,但默认情况下webpack不允许导入src目录之外的文件,所以才会抛出那个错误。而用绝对路径的话,就完全绕开了这个模块导入机制,直接访问静态资源,符合CRA的设计规范。

内容的提问来源于stack exchange,提问作者Hedge

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:58:54