liferay 7 - 不匹配的匿名定义()

3vi*_*3vi 2 liferay liferay-aui liferay-7

我想在我的liferay 7 portlet中包含sockjs(v1.1.2),但是我收到了这个警告:

Mismatched anonymous define() module: function ()...
Run Code Online (Sandbox Code Playgroud)

然后没有加载库.

我直接在我的liferay-portlet.xml中包含.js文件,如下所示:

<header-portlet-javascript>/common/js/sockjs.js</header-portlet-javascript>
Run Code Online (Sandbox Code Playgroud)

我没有任何想法让它发挥作用

sti*_*kj1 7

看起来你遇到了LPS-68298修复过的问题.如果您使用的是Liferay 7.0 DXP SP2 +或Liferay 7.0 CE GA4 +,只需打开管理侧栏并选择控制面板 > 配置 > 系统设置 > 基础 > JavaScript加载器 >取消选中全局曝光.如果您没有使用上述Liferay版本之一,则需要遵循此答案的建议并在加载脚本之前禁用AMD加载程序,然后重新启用AMD加载程序.或者,您可以通过手动编辑JS文件来解决此问题.更改任何文字,/common/js/sockjs.js如:

typeof define == 'function'
Run Code Online (Sandbox Code Playgroud)

至:

false && typeof define == 'function'
Run Code Online (Sandbox Code Playgroud)

这将阻止文件被Liferay的AMD加载程序加载.