I need to display an image on Node-RED dashboard using http end points. I have done the followings:
Here is my flow for reference:
[
{
"id": "7b08a202.a1670c",
"type": "http in",
"z": "e5e5e9b.2a8cc18",
"name": "",
"url": "/display-image",
"method": "get",
"upload": false,
"swaggerDoc": "",
"x": 112,
"y": 73,
"wires": [
[
"35ca7d97.da9dd2"
]
]
},
{
"id": "f8cf60ed.74b87",
"type": "http response",
"z": "e5e5e9b.2a8cc18",
"name": "",
"statusCode": "",
"headers": {
},
"x": 458,
"y": 70,
"wires": [
]
},
{
"id": "35ca7d97.da9dd2",
"type": "template",
"z": "e5e5e9b.2a8cc18",
"name": "SLD View",
"field": "payload",
"fieldType": "msg",
"format": "handlebars",
"syntax": "mustache",
"template": "<!DOCTYPE html>\n<html>\n <body>\n <img src=\"Barsu_SLD.png\" alt=\"Overview\" width=1000px; height=800px>\n \n </body>\n</html>",
"output": "str",
"x": 310,
"y": 136,
"wires": [
[
"f8cf60ed.74b87"
]
]
},
{
"id": "2beda89c.ca2b98",
"type": "ui_template",
"z": "e5e5e9b.2a8cc18",
"group": "d9e6ccf5.f58ab",
"name": "Display Button",
"order": 0,
"width": 0,
"height": 0,
"format": "<!DOCTYPE html>\n<html>\n <head>\n <style>\n .button {\n background-color: #086A87;\n border: none;\n color: white;\n padding: 16px 32px;\n text-align: center;\n text-decoration: none;\n font-size: 16px;\n margin: 3px 1px;\n cursor: pointer;\n border-radius: 4px;\n }\n .button_over:hover {\n background-color: #187A97;\n color: white;\n }\n </style>\n </head>\n <body>\n \n <a href=\"http://127.0.0.1:1880/BARSU-SLD/\" class=\"button button_over\" target=\"_blank\" >SLD View</a> \n \n </body>\n </html>",
"storeOutMessages": false,
"fwdInMessages": true,
"templateScope": "local",
"x": 112,
"y": 195,
"wires": [
[
]
]
},
{
"id": "d9e6ccf5.f58ab",
"type": "ui_group",
"z": "",
"name": "Test",
"tab": "1474e3ec.fb238c",
"disp": true,
"width": "6"
},
{
"id": "1474e3ec.fb238c",
"type": "ui_tab",
"z": "",
"name": "Home",
"icon": "dashboard"
}
]
Any help is highly appreciable.
答案 0 :(得分:1)
如果您将httpStatic
设置为~/.node-red/public
,例如在settings.js
中使用以下内容
httpStatic: path.join('', 'public'),
如果您有文件:~/.node-red/public/images/myimage.png
然后你的网址应该使用html
<img src="/images/myimage.png">
请注意最初的/
以及缺少任何http://localhost:1880
。您不需要提供http部分,因为您的浏览器会自动为您匹配。
请注意,如果您已将httpRoot
设置为某个内容,则还需要在其前面加上URL。