组件网址

本部分介绍了向用户显示网址时使用的语法。

网址格式

组件网址原则上可以采用任何架构。您可能会遇到的一些常见骗术包括:

fuchsia-pkg

fuchsia-pkg 组件网址是用于定位在 Fuchsia 软件包中分发的组件的软件包网址

其格式与软件包网址相同,其中包含相对于软件包根目录的资源路径,用于定位组件清单。此路径的格式通常为 meta/<manifest_name>.cm

fuchsia-pkg://<repo-hostname>[/<pkg-name>[/<pkg-variant>][?hash=<pkg-hash>][#<path-to-manifest>]]

示例:

fuchsia-pkg://fuchsia.com/stash#meta/stash_secure.cm

fuchsia-boot

fuchsia-boot 组件网址用于在系统启动映像中定位组件。此方案用于确定在 fuchsia-pkg 解析器可用之前必须在早期启动期间解析的组件。其格式如下:

fuchsia-boot:///<path-to-manifest-in-bootfs>

示例:

fuchsia-boot:///#meta/driver_manager.cm

http(s)

http(s) 组件网址用于将网页标识为组件。例如,此类组件可以作为网页在 Web runner 中执行。

示例:

https://en.wikipedia.org/wiki/Hippos

相对网址

组件框架支持部分相对网址(相对网址在 网址 RFC 3986 中定义)。具体而言,组件框架支持指向分包组件的相对路径网址(以及包含组件清单路径的网址片段),以及仅包含片段的网址。

组件清单的路径是相对组件网址片段 (#meta/<component>.cm) 中允许的唯一内容。如果该片段包含任何其他内容,或者相对组件包含网址查询参数 (?key=value),系统将无法解析该组件。

指向分包组件的相对路径网址

系统会在运行时根据已知的“上下文”解析相对路径网址。对于通过相对网址解析子组件的组件,上下文是与父组件关联的解析器提供的值。网址 path 会被解读为父级组件软件包的某个子软件包的名称。

相对子软件包路径网址以相对软件包网址开头,格式如下:

<subpackage-path>#<path-to-manifest>

示例:

child#meta/default.cm

如需详细了解子软件包和子软件包组件,请参阅 Fuchsia 子软件包文档。

仅包含片段的相对网址

仅在运行时,系统会根据父组件软件包的网址解析仅限片段的相对网址。仅包含片段的网址采用以下格式:

#<path-to-manifest>

示例:

#meta/child.cm

对于网址为以下的 fuchsia-pkg 父级组件:

fuchsia-pkg://fuchsia.com/package#meta/component.cm

相对网址会解析为:

fuchsia-pkg://fuchsia.com/package#meta/child.cm