我有一个Liferay 7项目,我想将浏览器的图标更改为自定义图标。我创建了portal-ext.properties文件,并设置了属性theme.shortcut.icon=myfavicon.ico
。虽然,但是我在网站上看不到自定义图标。
能告诉我.ico文件在tomcat目录中的位置吗? theme.shortcut.icon
到我的图片的路径是什么?
此外,您建议将portal-ext.properties文件放在哪里?
答案 0 :(得分:1)
图标应该是主题的一部分。这是解决问题的方法:检查Liferay的源代码(这里有7.1源代码),结果很容易浏览,但是为了清楚起见,我在这里缩短了grep输出:
olaf@tp:~/src$ grep -r "theme.shortcut.icon" .
./portal-kernel/.../PropsKeys.java: public static final String THEME_SHORTCUT_ICON = "theme.shortcut.icon";
./portal-impl/src/portal.properties: theme.shortcut.icon=favicon.ico
...
olaf@tp:~/src$ grep -r "THEME_SHORTCUT_ICON" .
./portal-web/.../themes/top_head.jsp:<link data-senna-track="temporary" href="<%= themeDisplay.getPathThemeImages() %>/<%= PropsValues.THEME_SHORTCUT_ICON %>" rel="Shortcut Icon" />
尽管缩短了行数,但难以阅读,因此快捷方式图标路径构造为<%= themeDisplay.getPathThemeImages() %>/<%= PropsValues.THEME_SHORTCUT_ICON %>
。为了易于维护,我建议您构建自己的主题(几乎每个人都这样做),然后使用标准文件名并将其替换为主题中的图像,然后进行设置。
当您询问“将图像放置在tomcat中的位置”时:在Liferay中,您不应该期望提供常规的Web应用程序,实际上,主题通常由其OSGi内容提供。您可以通过转到服务页面并搜索favicon
来方便地进行检查:如果路径包含/o/
,则指向OSGi引擎为其提供服务,例如Tomcat文件系统中没有等效文件(无论如何还是要模拟这些文件是一种坏习惯:很可能在下次升级时会忘记它们并失去所做的更改。
从我的库存安装来看,http://localhost:8080/o/classic-theme/images/favicon.ico
是提供该图标的地方,的确有/o/
。因此答案是:将图标添加到您自己的主题中,然后甚至不需要通过找到的属性来更改其名称。
但是,如何创建一个内容良好且可维护的系统(在您的Liferay与Liferay之间)是可以解决的。
作为一种非推荐的极端快速修补程序,您可能希望将portal-ext.properties中的值设置为
theme.shortcut.icon=../../../myfavicon.ico
,然后替换tomcat的webapps/ROOT/myfavicon.ico
中的图标。但是,当您在升级中意外覆盖它时,不要再哭了。