所以我有一个为mysql数据库服务的node/express api,json输出如下:
[
{
id: 1,
name: "Laptop Lenovo",
serial: "123-456",
tag: "IT-CL-22052018-001",
image: "/public/images/lenovo.jpg"
},
{
id: 2,
name: "Desktop Dell",
serial: "456-123",
tag: "IT.CD.19052018-002",
image: "public/images/dell.jpg"
},
{
id: 3,
name: "Laptop Dell",
serial: "909090",
tag: "IT.CL.01052018.002",
image: "http://localhost:8000/images/ldell.jpg"
}
]
我试过了每个功能:
app.use(express.static('public'))
app.use('/static', express.static('public'))
var dir = path.join(__dirname, 'public');
app.use(express.static(dir));
我的react应用程序显示图像的唯一方法是使用数据库上的完整url,如#3。
如何在不使用完整url的情况下显示图像?
编辑:添加渲染函数
render() {
return this.state.inventory.map(itemList => {
let item = itemList;
return (
// <div className="tile">
<div className="card margin-all">
<div className="card-content">
<div className="media">
<div>
<figure className="image is-96x96">
<img src={item.image} />
</figure>
</div>
</div>
<div>
<h4>Nama: {item.name} </h4>
<h4>Nomor Seri: {item.serial} </h4>
<h4>ID Tag: {item.tag} </h4>
</div>
</div>
</div>
// </div>
);
})
}
}
皮克特
3条答案
按热度按时间wyyhbhjk1#
静态资产的路径是
/static/
所以我假设你必须这样称呼这些图像(例如#2)但你是通过
/public/
```{
id: 2,
name: "Desktop Dell",
serial: "456-123",
tag: "IT.CD.19052018-002",
image: "static/images/dell.jpg"
}
app.use('/public', express.static(__dirname + '/public'));
omvjsjqw2#
对于express中间件
app.use(express.static('public'))
很好,问题是你需要使用正确的路径。在json数据中,图像是public/images/dell.jpg
哪个应该是/public/images/dell.jpg
但你可以用同时,希望这能有所帮助
wgeznvg73#
因此,通过添加代理来响应应用程序,我不需要提供链接的完整url。
如果express端口是8000,那么将此行放在react应用程序的package.json中,而不是节点应用程序中。
现在我可以使用images/name.jpg并显示图像。