在编辑器中加载额外资源

自 Node-RED 1.3 起

一个节点可能需要在编辑器中加载额外资源。例如,在帮助文档中包含图像,或使用外部 JavaScript 和 CSS 文件。

在早期版本的 Node-RED 中,节点必须创建自定义 HTTP 管理端点来提供这些资源。

使用 Node-RED 1.3 或更高版本,如果一个模块在顶层有一个名为 resources 的目录,运行时将使该目录中的任何内容在编辑器中通过 URL /resources/<模块名称>/<资源路径> 可用。

例如,给定以下模块结构

node-red-node-example
 |- resources
 |   |- image.png
 |   \- library.js
 |- example-node.js
 |- example-node.html
 \- package.json

默认的 Node-RED 配置将把这些资源文件暴露为

  • https://:1880/resources/node-red-node-example/image.png
  • https://:1880/resources/node-red-node-example/library.js

注意:如果使用带作用域的模块名称,则作用域需要包含在路径中

  • https://:1880/resources/@scope/node-red-contrib-your-package/somefile

在编辑器中加载资源

在编辑器中加载资源时,节点必须使用相对 URL 而不是绝对 URL。这使得浏览器可以将 URL 相对于编辑器 URL 解析,并消除了节点需要知道其根路径如何配置的需求。

使用上述示例,以下 HTML 可用于在编辑器中加载这些资源

  • <img src="resources/node-red-node-example/image.png" />
  • <script src="resources/node-red-node-example/library.js">

请注意,URL 不以 / 开头。