使用siteResourcePath
或<theme:image>
我们应该在每种情况下使用它们?
如果我们使用<theme:image>
,我们应该在theme-alpha-deskptop_en.properties
中提及该属性吗?
答案 0 :(得分:0)
在Hybris中使用包含图像的正确方法是什么 siteResourcePath或&lt; theme:image&gt;?
两者都用于显示静态图像或内容。 siteResourcePath,themeResourcePath和其他ResourcePath用于获取CSS,图像,字体,js等静态内容。
我们应该在每种情况下使用它们?
假设您希望在某个页面上显示静态图像,而不管您的主题,网站,lang。这意味着它对所有人都很常见,所以你可以简单地使用siteResourcePath或commonResourcePath(基于你的文件夹结构)。
<img src="${commonResourcePath}/images/my_image_300x300.jpg" alt="My Image" title="My Image" />
现在,在另一种情况下,您必须根据主题/网站/ lang显示不同的静态图像,因此您可以在此处声明每个属性文件中的相应值,并将代码传递给<theme:image>
。各个文件的值已经偷看了。喜欢missingProductImage。
<theme:image code="img.missingProductImage.responsive.product" alt="${fn:escapeXml(product.name)}" title="${fn:escapeXml(product.name)}"/>
theme-alpha-desktop_de.properties
img.missingProductImage.responsive.product=/_ui/responsive/theme-alpha/images/missing_product_DE_300x300.jpg
theme-black-desktop_en.properties
img.missingProductImage.responsive.product=/_ui/responsive/theme-black/images/missing_product_EN_300x300.jpg
如果我们正在使用,我们应该提及该物业 theme-alpha-deskptop_en.properties?
正如我在上面的示例中提到的,如果您使用的是<theme:image>
,那么您必须在所有相应的属性文件中提及相应的值(不仅仅是在theme-alpha-deskptop_en.properties中)。这取决于您的主题,UI体验和支持性语言。
final String siteRootUrl = contextPath + "/_ui/" + uiExperienceCodeLower;
final String sharedResourcePath = contextPath + "/_ui/" + SHARED;
final String siteResourcePath = siteRootUrl + "/site-" + siteName;
final String themeResourcePath = siteRootUrl + "/theme-" + themeName;
final String commonResourcePath = siteRootUrl + "/" + COMMON;