本部分介绍了用于向用户显示网址的语法。
网址格式
原则上,组件网址可以具有任何架构。您可能遇到的一些常见方案如下:
- fuchsia-pkg
- fuchsia-boot
- http(s)
紫红色 pkg
fuchsia-pkg
组件网址是一个软件包网址,可定位到紫红色软件包中分发的组件。
其格式与软件包网址相同,但使用的资源路径(相对于用于定位组件清单的软件包根目录)。此路径通常为 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-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 子软件包的文档。
仅包含相对片段的网址
系统会根据父组件的软件包的网址在运行时解析仅包含片段的相对网址。纯 Fragment 网址的格式如下:
#<path-to-manifest>
示例:
#meta/child.cm
对于具有以下网址的 fuchsia-pkg
父组件:
fuchsia-pkg://fuchsia.com/package#meta/component.cm
相对网址解析为:
fuchsia-pkg://fuchsia.com/package#meta/child.cm