reactjs - 使用 React/Webpack 加载图像
问题描述
我设置了webpack
加载png
图像的规则:
{
test: /\.(jpe?g|png|gif|svg)$/i,
loaders: [
'file?hash=sha512&digest=hex&name=[hash].[ext]',
'image-webpack?bypassOnDebug&optimizationLevel=7&interlaced=false'
]
}
我在这里找到的:无法使用 webpack 加载 png 文件,意外字符
Webpack
似乎工作正常,没有错误。因此,我尝试加载位于方法app_folder/public/images/pca
内部的png 图像路径render
:
importAll = (r) => {
return r.keys().map(r);
}
render() {
const pca_images = this.importAll(require.context('../public/images/pca',
false, /\.(png|jpe?g|svg)$/));
console.log('pca_images')
console.log(pca_images)
...
}
当我启动应用程序时,我没有看到任何错误,但它pca_images
是一个空数组。组件本身位于app_folder/views/
. 我也尝试像这样直接加载图像:
<img src={ require('../public/images/image1.png') } />
但是无论我指定什么路径,它都无法正常工作并给出错误。我需要从文件夹中加载所有图像app_folder/public/images/pca
,而不仅仅是静态加载,因为我事先不知道图像的名称。任何建议将不胜感激。
解决方案
对我有用的解决方案是将规则添加到webpack.config.js
:
{
test: /\.(jpe?g|gif|png|svg)$/i,
use: [
{
loader: 'url-loader',
options: {
limit: 10000
}
}
]
}
我在这里找到的这条规则:ReactJS and images in public folder
然后我需要在终端中运行两个命令:
npm install url-loader --save-dev
npm install file-loader --save-dev
最后从文件夹加载(见问题,render
方法)开始工作。
推荐阅读
- java - 使用 ModelMapper 防止循环引用 - 列表
- spring-boot - 有没有办法在 spring-kafka 中配置自定义 RecordMessageConverter?
- python - 在我的 PYQT5 的 QTableWidget 中,使用 QHeaderView 类,我在其中设置了一个复选框:如何使用该复选框来确定我选择了哪一行?
- algorithm - 快速排序算法在最后两个元素上给出错误的输出
- python - python数组将numpy引用转换为非numpy
- class - 你如何在课堂上收集特殊物品?
- flutter - 颤振布局错误“底部的无限像素溢出的 RenderFlex”
- javascript - 从 JSON 文件中获取特定键/值对的数组
- numpy - 如何将 TF 2.x 中的张量转换为 Numpy?
- php - 如何在laravel中注册时分配角色