有没有办法通过 Javascript/jQuery 或源代码从浏览器中找出服务器上部署了哪个版本的 Liferay?
我看过 Liferay 的 Javascript API。它由许多有用的方法组成。
API 中是否有一种方法可以用来找出加载的页面在哪个 Liferay 版本上运行?
编辑:或者是否有任何其他方法,例如从客户端检查加载的资源(js/images/css/source/theme)名称以确认门户在特定的 liferay 版本上运行?欢迎任何粗略的建议。
有没有办法通过 Javascript/jQuery 或源代码从浏览器中找出服务器上部署了哪个版本的 Liferay?
我看过 Liferay 的 Javascript API。它由许多有用的方法组成。
API 中是否有一种方法可以用来找出加载的页面在哪个 Liferay 版本上运行?
编辑:或者是否有任何其他方法,例如从客户端检查加载的资源(js/images/css/source/theme)名称以确认门户在特定的 liferay 版本上运行?欢迎任何粗略的建议。
几个粗略的建议:
您可以在控制面板中查看服务器管理页面。
深入研究该页面的源代码,我发现静态 Java 类com.liferay.portal.kernel.util.ReleaseInfo
包含有关 liferay 版本的所有信息。
据我所知,这些信息在公开可用的客户端上不容易访问,但您可以这样做,例如在您的 JSP 中插入以下内容:
<aui:script>
Liferay.version = "<%=HtmlUtil.escapeJS(com.liferay.portal.kernel.util.ReleaseInfo.getReleaseInfo()) %>"
</aui:script>
编辑: Liferay 确实在其静态资源 url 中包含内部版本号作为参数 b。例如,在 liferay.com 主页的以下摘录中:
<link href="[...]/main.css?[...]b=6120&t=1382040996000" rel="stylesheet" type="text/css" />
参数 b=6120 给出了门户的内部版本号。它在 PortalImpl.java 中设置:
@Override
public String getStaticResourceURL(
HttpServletRequest request, String uri, String queryString,
long timestamp) {
[...]
// Build number
sb.append("&b=");
sb.append(ReleaseInfo.getBuildNumber());
[...]
希望这可以帮助,
阿兰
Inspecting the Response Headers with a modern browser you may see a header like:
Liferay-Portal : Liferay DXP Digital Enterprise…/ Build 7010 / June 15, 2016)Hope its useful