tomcat - 使用 Tomcat 更改 Liferay 7 中的图标

标签 tomcat liferay liferay-7

我有一个 Liferay 7 项目,我想将浏览器的图标更改为自定义图标。我创建了一个 portal-ext.properties 文件并设置了属性 theme.shortcut.icon=myfavicon.ico 。虽然,我在我的网站上看不到自定义图标。

你能告诉我把我的 .ico 文件放在 tomcat 目录中的什么地方吗? theme.shortcut.icon 到我的图像的路径是什么?

此外,您建议将 portal-ext.properties 文件放在哪里?

最佳答案

图标应该是您主题的一部分。以下是如何弄清楚该怎么做:检查 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 之间)可能超出了这个答案的范围。

作为一个极端的、不推荐的、quickfix,您可能希望将 portal-ext.properties 中的值设置为

theme.shortcut.icon=../../../myfavicon.ico

并替换tomcat的webapps/ROOT/myfavicon.ico中的图标.但是,当您在升级中不小心将其覆盖时,不要稍后哭泣。

关于tomcat - 使用 Tomcat 更改 Liferay 7 中的图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53328682/

相关文章:

java - Java/Tomcat 服务器的最佳 Comet/Push 技术?

tomcat - 使用 Grails Spring Websocket 插件的主机名不能为空

tomcat - Nginx 显示 SSL 错误

struts2 - Liferay - Struts2 Portlet 示例

java - Liferay 7 hibernate方言不兼容问题

java - Vaadin QuickTickets 仪表板部署错误

java - 将 LDAP 用户映射到 Liferay 本地组

ldap - LDAP 中的 memberOf 与 groupMembership (Liferay)

java - 服务生成器没有添加一些依赖项?

jsp - Liferay7 未加载自定义标签库