Hybris:找不到与当前URL关联的CMSSite

Suj*_*ata 9 error-handling content-management-system hybris

我使用给定的模板之一创建了一个新的Hybris扩展.
构建成功,我也能够启动服务器.

但是当从HAC打开weblink时,我收到错误"无法找到与当前URL关联的CMSSite".

是否有解决或调查此问题的建议?

Fre*_*ded 17

您需要使用hosts文件映射或使用site-ID参数来避免500错误.

在此输入图像描述

请点击这些链接

https://wiki.hybris.com/display/accdoc/Just+One+Storefront

https://help.hybris.com/6.3.0/hcd/8ae0711f86691014877ae05249b2f5ac.html(Hybris 6)

如果您具有管理员权限,则最好在主机文件中添加以下条目.

127.0.0.1 hybris.local [例]

etc主机修改允许加速器从URL识别站点(CMSSites).这使URL整洁干净.

主机文件更改后,您可以像这样访问该站点

HTTP://hybris.local:9001/yacceleratorstorefront /

如果您不这样做,则需要使用这样的附加请求参数来标识站点

HTTP://本地主机:9001/yacceleratorstorefront /网站=的hybris&明确=真


Hyb*_*elp 6

错误“找不到与当前 URL 关联的 CMSSite”。

这是因为您没有告诉 hybris 您要访问哪个站点。

有三种方法可以做到这一点

  1. 只需在您的第一个请求中将您的 siteID 作为请求参数 (?site=SiteID) 传递,这有助于 Hybris 了解您尝试访问的站点。假设我正在尝试访问 powertools 站点,那么 URL 将是 https://localhost:9002/yacceleratorstorefront?site=powertools

  2. 以 siteID 作为 DNS 名称的访问站点。你可以用 127.0.0.1 主机<siteID>.local。假设我想访问一个 powertools(它是 powertools 的 CMSSite id),然后127.0.0.1 powertools.local在您的主机文件中添加一个条目,然后使用http://powertools.local:9001/yacceleratorstorefront/而不是 localhost访问您的站点

  3. 在 CMSSite 的 urlPatterns 中添加您选择的新正则表达式。这样您就可以根据需要访问您的网站。假设我只想使用 localhost URL 访问站点,而无需传递 ?site=powertools 。所以我需要添加一个新的正则表达式,比如(?i)^https?://[^/].*$powertools CMSSite 的 urlPatterns。现在我可以使用https://localhost:9002/yacceleratorstorefront/直接打开 powertools 站点

您也可以使用 Impex 做到这一点

$siteUid=mysite       
# CMS Site                                                                                                 
INSERT_UPDATE CMSSite ; uid[unique=true] ; urlPatterns                                                                                                                  ;      
                      ; $siteUid         ; (?i)^https?://[^/]+(/[^?]*)?\?(.*\&)?(site=$siteUid)(|\&.*)$,(?i)^https?://$siteUid\.[^/]+(|/.*|\?.*)$,(?i)^https?://[^/].*$ ;
Run Code Online (Sandbox Code Playgroud)

这里找到详细的答案