如何在 Liferay 7 中禁用 SennaJS/SPA?

Posted

技术标签:

【中文标题】如何在 Liferay 7 中禁用 SennaJS/SPA?【英文标题】:How can I disable SennaJS/SPA in Liferay 7? 【发布时间】:2017-05-08 08:50:07 【问题描述】:

Liferay 7 使​​用SennaJS 作为其单页应用程序引擎,以便在表单提交和导航期间加载和替换门户页面的某些部分。有时这个功能会干扰我的用例,那么我该如何禁用它呢?

【问题讨论】:

【参考方案1】:

如果您想禁用 SennaJS 执行的 XHR GET 导航或其对表单提交的处理,您可以尝试以下方法之一:

如果您只想对某些表单或链接禁用 SPA,可以将 data-senna-off="true" 属性添加到这些 <form><a> 标记。

如果您只想为一个 portlet 禁用 SPA,可以将 <single-page-application>false</single-page-application> 添加到 liferay-portlet.xml<portlet> 部分(请参阅 the DTD for the expected order of liferay-portlet.xml elements)。 p>

如果您只想为一个 OSGi 模块 portlet 禁用 SPA,您可以将 "com.liferay.portlet.single-page-application=false" 添加到您的 portlet 元数据中。

如果您想在门户范围内禁用 SPA,可以将 javascript.single.page.application.enabled=false 添加到您的 portal-ext.properties 文件中。

【讨论】:

每个站点怎么样? @Syd,我不知道这是否可能。您可以随时向 Liferay Portal 提出要求:issues.liferay.com 有没有办法只对包含标记为单页应用程序的 portlet 的页面禁用 SPA?在这些 portlet 中生成的 URL 可以正常工作。在全页面重新加载但导航事件形成带有 URL 到包含此类 portlet 的页面的期刊文章的情况下,仍然使用 SPA 引擎生成未初始化的脚本在没有 SPA 就绪的 portlet 上。

以上是关于如何在 Liferay 7 中禁用 SennaJS/SPA?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Liferay 7 中添加新语言?

如何从 Liferay 7 取消部署 portlet?

如何在 Liferay 7.0 中替换登录 portlet?

我们如何在 liferay7 中覆盖 liferay 模块?

Liferay 7.3:如何预配置嵌入在页面片段中的 portlet?

如何修复 Liferay 7.4.2 中禁止的 URL 重定向?