在编辑器中加载额外资源

自 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 配置将会将这些资源文件暴露为:

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

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

  • http://localhost: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 不以 / 开头。