如何在 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.0 中替换登录 portlet?
我们如何在 liferay7 中覆盖 liferay 模块?