用途
该技能用于为 Salesforce 上的 React UI Bundle 创建并配置 Digital Experience Site(数字体验站点)。当项目包含 uiBundles/*/src/ 目录,且任务涉及创建或配置站点基础设施时,应激活本技能。
React 站点与标准 LWR 站点不同:它们不需要 routes、views、theme layouts 或 branding sets。站点充当一个薄容器(appContainer: true),将渲染委托给由 appSpace 引用的 React UI bundle。
主要能力
生成运行 React 应用所需的最小站点基础设施,涉及以下元数据类型:
- Network
- CustomSite
- DigitalExperienceConfig
- DigitalExperienceBundle
- sfdc_cms__site 内容类型
使用方式
技能按以下工作流执行:
第 1 步:解析全部必需属性
在生成任何元数据前,先解析以下五个属性,每个属性都有回退链,按顺序尝试直至找到值:
| 属性 | 格式 | 解析方式 |
|---|---|---|
| siteName | UpperCamelCase(如 MyCommunity) | 询问用户或从上下文推导 |
| siteUrlPathPrefix | 全小写(如 mycommunity) | 用户提供,或将 siteName 转为全小写且仅保留字母数字 |
| appNamespace | 字符串 | sfdx-project.json 中的 namespace → sf data query -q "SELECT NamespacePrefix FROM Organization" --target-org ${usernameOrAlias} → 默认 c |
| appDevName | 字符串 | 项目中的 UIBundle 元数据 → sf data query -q "SELECT DeveloperName FROM UIBundle" --target-org ${usernameOrAlias} → 默认使用 siteName |
| enableGuestAccess | 布尔值 | 询问用户未认证访客是否可以访问站点 API → 默认 false |
appNamespace 和 appDevName 用于将站点连接到正确的 React 应用。若设置错误,站点虽能部署但会显示空白页面,因此需从真实项目数据中解析。
第 2 步:创建项目结构
使用可用的 Salesforce 元数据 schema 和字段上下文,确保每个文件使用有效结构。按以下路径创建尚不存在的文件与目录:
| 元数据类型 | 路径 |
|---|---|
| Network | networks/{siteName}.network-meta.xml |
| CustomSite | sites/{siteName}.site-meta.xml |
| DigitalExperienceConfig | digitalExperienceConfigs/{siteName}1.digitalExperienceConfig-meta.xml |
| DigitalExperienceBundle | digitalExperiences/site/{siteName}1/{siteName}1.digitalExperience-meta.xml |
| DigitalExperience (sfdc_cms__site) | digitalExperiences/site/{siteName}1/sfdc_cms__site/{siteName}1/* |
DigitalExperience 目录只包含 _meta.json 和 content.json。不要在 bundle 内创建除 sfdc_cms__site 以外的任何目录。
第 3 步:填充所有元数据字段
使用文档中的默认模板。{braces} 中的值为已解析的属性引用,用第 1 步得到的实际值替换。
| 元数据类型 | 模板引用 |
|---|---|
| Network | configure-metadata-network.md |
| CustomSite | configure-metadata-custom-site.md |
| DigitalExperienceConfig | configure-metadata-digital-experience-config.md |
| DigitalExperienceBundle | configure-metadata-digital-experience-bundle.md |
| DigitalExperience (sfdc_cms__site) | configure-metadata-digital-experience.md |
URL 更新参见 update-site-urls.md。
执行说明:在第 3 步填充元数据字段前,必须完整读取每个 docs/*.md 文件的内容。使用平台的文件读取工具(如 read_file)完整加载这些文件,然后对 {braces} 中的占位符用第 1 步解析出的值进行替换。需加载的文件:
- docs/configure-metadata-network.md
- docs/configure-metadata-custom-site.md
- docs/configure-metadata-digital-experience-config.md
- docs/configure-metadata-digital-experience-bundle.md
- docs/configure-metadata-digital-experience.md
读取完整文件内容,将占位符(如 {siteName})替换为解析值,再用展开后的模板填充元数据 XML/JSON 内容。
第 4 步:不要修改非模板属性
不要修改 Network、CustomSite、DigitalExperience、DigitalExperienceConfig 或 DigitalExperienceBundle 元数据中任何未以 {braces} 包裹的变量表示的默认属性值。
适用场景
- 项目包含 uiBundles/*/src/ 目录
- 需要在 Salesforce 上创建或配置承载 React UI Bundle 的站点基础设施
- 需要更新或更改站点 URL(urlPathPrefix)
验证清单
部署前确认:
- 已解析全部五个必需属性
- 所有元数据目录和文件按项目结构存在
- 所有元数据字段与第 3 步模板一致,仅替换 {braces},未添加或更改其他默认属性值
- content.json 中的 appSpace 与现有 UIBundle 元数据记录匹配
- 部署验证成功:
sf project deploy validate --metadata Network CustomSite DigitalExperienceConfig DigitalExperienceBundle DigitalExperience --target-org ${usernameOrAlias}
常见工作流:更新 Experience Site URL
当用户想要更新或更改站点 URL(urlPathPrefix)时使用。步骤:
- 阅读 update-site-urls.md,理解三组件架构和 URL 更新工作流
- 按照文档中的分步工作流,在三个组件(DigitalExperienceConfig、Network、CustomSite)中一致地更新 URL
限制
本资料未提供收费、价格、平台兼容性、效果或具体定价信息。