javascript - React 应用程序已发布,但目录 (/assets/images/) 中的图像丢失
问题描述
我的 React.js 应用程序已发布,但我在images
目录 ( /assets/images/
) 中的图像资产未部署。
发布站点的结构:
使用以下命令构建应用程序后npm run build
:
资产清单.json:
反应应用程序结构:
解决方案
我刚刚找到您的网站并检查了来源。如果您在开发工具中检查呈现的页面,您的图像将呈现为<img src="[object Module]">
.
看来您正在使用create-react-app
并且曾经require
导入图像。在最新版本的 CRA 中,require
返回一个 ES 模块而不是一个字符串,因为在file-loader
该esModule
选项中默认启用。
因此,请确保以下列方式之一导入图像:
const image = require('../path/to/image.jpg').default;
// OR
import image from '../path/to/image.jpg';
编辑:
当您发送了您的存储库的 URL 时,我可以看到您像这样导入图像:
<div className="greeting-image-div">
<img
alt="saad sitting on table"
src={require('../../assets/images/manOnTable.svg')}
></img>
</div>
正如我上面提到的,您要么需要获取d 模块的default
属性:require
<div className="greeting-image-div">
<img
alt="saad sitting on table"
src={require('../../assets/images/manOnTable.svg').default}
></img>
</div>
...或使用import
:
import manOnTable from '../../assets/images/manOnTable.svg'
// ...
<div className="greeting-image-div">
<img
alt="saad sitting on table"
src={manOnTable}
></img>
</div>
我个人比较喜欢import
。
推荐阅读
- javascript - 如何在本机反应中将填充物放在我的输入字符串上?
- python - 使用归并排序的反转次数
- r - 风筝图上的新线或边距变化?
- html - 垫子按钮样式不适用于垫子菜单
- django - django中是否有任何解决方案可以将外键列与模板内的主键进行比较,我需要在我的项目中进行特定匹配
- c++ - 我想知道为什么它给我这个错误?
- html - 悬停更改 id 特定部门
- java - 代理在 java 11 httpclient 中不起作用
- python - Python Pandas:如何找到组合模式(组合的组合) - 时间序列
- flutter - Flutter 仅在调试模式下导入库