reactjs - Create React App 4.0 无法解析公用文件夹中的图像路径
问题描述
我已经升级到最新的 Create React App 4.0。现在scss
无法解析公用文件夹中的图像资产。我之前使用的是 CRA 3.4.1。它工作得很好。
有任何想法吗?我不想用npm eject
icon.svg 在public/images
background-image: url(/images/icon.svg);
Failed to compile.
./src/Components/style.scss
(./node_modules/css-loader/dist/cjs.js??ref--5-oneOf-6-1!
./node_modules/postcss-loader/src??postcss!
./node_modules/resolve-url-loader??ref--5-oneOf-6-3!
./node_modules/sass-loader/dist/cjs.js??ref--5-oneOf-6-4!
./src/Components/style.scss)
Error: Can't resolve '../../../../../../icon.svg' in ''
在 Create React App 3.x 中,从 (S)CSS 中的公用文件夹中引用图像只需使用起始斜线即可,正如已在此处回答的那样。
正如 OP 所解释的那样,图像在public/images
并且被引用为url(/images/icon.svg)
.
这不再适用于 Create React App 4.0.0 并给出错误消息Error: Can't resolve '../../../../../../icon.svg' in ''
。Create React App的更新日志没有提到有关公用文件夹的重大更改。
解决方案
尝试更改为:(webpack 应将此解析为“真实”路径)
background-image: url(./icon.svg);
我知道您想将图像添加为背景图像css 属性,但也许另一种方法与您相关。
当您像这样导入时,您可以像使用普通组件一样使用它:
import { ReactComponent as Icon } from'<path_to_resource>/images/icon.svg';
<Icon />
来源: https ://create-react-app.dev/docs/adding-images-fonts-and-files/
推荐阅读
- c# - Unity 点击并传递 WaitForSeconds
- c# - 如何在 C# 中将应用程序设置传递给邮件方法
- r - R:在集群/并行环境中按组聚合多个列
- javascript - 防止高阶数组方法抛出错误
- sql - 获取用户子集的子层次结构
- apache-kafka-connect - Camel aws-s3 Source Connector Error - 应该如何更改配置
- php - heroku php增加max_execution_time
- c# - 从 DataGridView 转换到 ObjectListView 以显示数据库中的图像并合并行
- unity3d - 无法在检查器中序列化类
- google-sheets - Arrayformula Google 表格的手动公式