【发布时间】:2021-11-12 08:58:11
【问题描述】:
我正在从本地服务器后端接收数据,我想加载图像。我正在接收这样的对象数组:
[ {
"t_pdno": "SFC093989",
"t_mitm": "SLS005251ACL-3382012763-1",
"t_qrdr": 60,
"Operations": "10,20,30,40,60,70",
"path": "\\\\192.168.1.245\\Images\\ACL-3382012763-1.jpg"
},
{
"t_pdno": "SFC093991",
"t_mitm": "SLS005251ACL-3382012765-1",
"t_qrdr": 120,
"Operations": "10,20,30,40",
"path": "\\\\192.168.1.245\\Images\\ACL-3382012765-1.jpg"
},]
在我 console.log(rowData.path) 之后它看起来像这样的路径:
\\192.168.1.245\Images\ACL-3382014766-1.jpg
所以粘贴到浏览器中是完美的,我得到了图像:
问题是我无法将它加载到我的 img 标记中。我试过了:
<img
src={process.env.PUBLIC_URL + rowData.path}
alt={`${rowData.t_mitm}`}
loading="lazy"
/>
<img
src={rowData.path}
alt={`${rowData.t_mitm}`}
loading="lazy"
/>
<img
src={require(rowData.path)}
alt={`${rowData.t_mitm}`}
loading="lazy"
/>
<img
src={`url(rowData.path)`}
alt={`${rowData.t_mitm}`}
loading="lazy"
/>
并且没有任何工作。如何加载图片?
更新:
如果我将 http-server 安装到 \\192.168.1.245 服务器并在特定端口上托管图像文件夹,我就能够接收图像。但这意味着我必须始终保持文件夹托管。
更新 2:
如果我尝试像这样加载图像:
<img
src={`file://192.168.1.245/Images/${rowData.t_mitm}`}
alt={`${rowData.t_mitm}`}
loading="lazy"
/>
它可能有效,但我明白了:
不允许加载本地资源: 文件://192.168.1.245/Images/ACL-3382012763-1.jpg
【问题讨论】:
-
您能否提供更多有关您本地后端服务器的详细信息?
-
@dave 我向数据库发出请求,该数据库返回的结果类似于“ACL-3382012763-1”。然后我将其作为 t_mitm 字段发送。仅此而已
-
还返回路径,如 \\192.168.1.245\Images\ACL-3382014766-1.jpg 或任何我尝试的方法
-
我认为您的服务器需要配置为通过 http 提供图像。这就是为什么当你启动
http-server时它会起作用。您的图像是如何托管的?你在运行apache吗?恩吉斯? IIS? -
src值在您的浏览器页面源中看起来如何?
标签: javascript html css reactjs image