ReactJS:图像显示无法正常工作
ReactJS: Image display not working correctly
所以我在上传图片时遇到了这种情况。在前端,它的 React Js
和后端 Node Js
。图片上传正常,但是当我必须在前端显示它们时,它不起作用。
我正在使用 react-image-gallery 来显示这样的图像:
<ImageGallery
items={this.state.currentImages}
lazyLoad={true}
ref={this.myRef}
showIndex={true}
/>
这就是 this.state.currentImages
中的内容:
[
{
"original": "/var/www/html/ciaoOrderTaking/projects/ciao_full_stack/uploads/images/items/IMAGE-1645782694696.jpg",
"thumbnail": "/var/www/html/ciaoOrderTaking/projects/ciao_full_stack/uploads/images/items/IMAGE-1645782694696.jpg"
}
]
在浏览器中路径变为:
http://localhost:3000/var/www/html/ciaoOrderTaking/projects/ciao_full_stack/uploads/images/items/IMAGE-1645782694696.jpg
我怎样才能让它发挥作用?有什么解决办法吗?
您必须制作 URL 并在后端静态提供您上传的文件,例如,您的后端端口是 3000,并且您已经在 nodejs 后端静态提供上传文件夹。
上传文件夹结构:
上传 -> 图片 -> 项目 -> IMAGE-1645782694696.jpg
现在你的文件 URL 将变成:
http://localhost:3000/images/items/IMAGE-1645782694696.jpg
所以在前端创建一个函数,将您的图像 url 转换为可访问的文件 URL,例如:
const toAbsoluteURL=(url)=>{
return `http://localhost:3000/${url}` // note that this is backend url
}
并将函数映射到图像数组。
images=images.map((url)=>toAbsoluteURL(url?.original)); // now images array have accessible file urls
您可以根据需要使用上述功能使 URL 可访问。
事实证明,这就是答案。
所以我在上传图片时遇到了这种情况。在前端,它的 React Js
和后端 Node Js
。图片上传正常,但是当我必须在前端显示它们时,它不起作用。
我正在使用 react-image-gallery 来显示这样的图像:
<ImageGallery
items={this.state.currentImages}
lazyLoad={true}
ref={this.myRef}
showIndex={true}
/>
这就是 this.state.currentImages
中的内容:
[
{
"original": "/var/www/html/ciaoOrderTaking/projects/ciao_full_stack/uploads/images/items/IMAGE-1645782694696.jpg",
"thumbnail": "/var/www/html/ciaoOrderTaking/projects/ciao_full_stack/uploads/images/items/IMAGE-1645782694696.jpg"
}
]
在浏览器中路径变为:
http://localhost:3000/var/www/html/ciaoOrderTaking/projects/ciao_full_stack/uploads/images/items/IMAGE-1645782694696.jpg
我怎样才能让它发挥作用?有什么解决办法吗?
您必须制作 URL 并在后端静态提供您上传的文件,例如,您的后端端口是 3000,并且您已经在 nodejs 后端静态提供上传文件夹。 上传文件夹结构: 上传 -> 图片 -> 项目 -> IMAGE-1645782694696.jpg 现在你的文件 URL 将变成: http://localhost:3000/images/items/IMAGE-1645782694696.jpg
所以在前端创建一个函数,将您的图像 url 转换为可访问的文件 URL,例如:
const toAbsoluteURL=(url)=>{
return `http://localhost:3000/${url}` // note that this is backend url
}
并将函数映射到图像数组。
images=images.map((url)=>toAbsoluteURL(url?.original)); // now images array have accessible file urls
您可以根据需要使用上述功能使 URL 可访问。
事实证明,这就是答案。