【发布时间】:2019-10-05 03:07:36
【问题描述】:
我只是对如何从源文件夹正确地提供资产有点困惑。
相关的服务器端代码(客户端向/images发出请求,服务器发回文件名):
const images = './static/images/';
app.use(express.static('static/images'))
app.get('/images', (req, res) => {
res.setHeader('Content-Type', 'application/json');
fs.readdir(images, (err, files) => {
res.send(files);
});
});
我的目录结构如下:
public
index.html
server (houses Node/Express code)
index.js
src (houses React code)
App.js
static
images
image1, image2, image4, image4
如果我尝试在 React 中显示图像(state.currImage 是 4 个文件名之一):
<img alt="scan" src={ require(this.state.currImage)}
我收到一条错误消息“未处理的拒绝(错误):找不到模块'./static/images/file1.jpg'”
【问题讨论】:
-
你能
console.log('[image]', this.state.currImage)告诉我它说了什么吗?另外...您可以发布您的整个组件,以便我们查看 this.state.currImage 是如何设置的吗? -
你为什么要在浏览器中调用
require?你为什么给res.send而不是urls的文件系统路径数组? -
@Dan O 图片存储在我的电脑上