liferay 7-不匹配的匿名定义()
我试图在liferay 7 portlet中包含sockjs(v1.1.2),但收到以下警告:liferay 7-不匹配的匿名定义(),liferay,liferay-aui,liferay-7,Liferay,Liferay Aui,Liferay 7,我试图在liferay 7 portlet中包含sockjs(v1.1.2),但收到以下警告: Mismatched anonymous define() module: function ()... 然后库就不会被加载 我将.js文件直接包含在我的liferay-portlet.xml中,如下所示: <header-portlet-javascript>/common/js/sockjs.js</header-portlet-javascript> /common/
Mismatched anonymous define() module: function ()...
然后库就不会被加载
我将.js文件直接包含在我的liferay-portlet.xml中,如下所示:
<header-portlet-javascript>/common/js/sockjs.js</header-portlet-javascript>
/common/js/sockjs.js
我没有任何办法让它工作看起来你遇到了一个问题,这个问题已经被解决了。如果您使用的是LIFLERAY 7 DXP SP2+或LIFERAY 7 CE GA4+,您可以简单地打开管理侧栏并选择控制面板>配置>系统设置>基础> JavaScript加载器>不检查暴露全局。如果您没有使用上述Liferay版本之一,则需要遵循的建议。或者,您可以通过手动编辑JS文件来修复此问题。更改
/common/js/sockjs.js中的任何文本,如:
typeof define == 'function'
致:
这将阻止Liferay的AMD加载程序加载文件。stiemannkj1是正确的
但是,如果您不想接触js库(可能是CDN)的代码,也不想更改配置,则可以执行以下操作(如果您担心多个站点和Portlet可能会影响此行为)
Liferay.Loader.define.\u amd=Liferay.Loader.define.amd;
Liferay.Loader.define.amd=false;
Liferay.Loader.define.amd=Liferay.Loader.define.\u amd;
如果此代码不起作用,请尝试此代码
<script>
define._amd = define.amd;
define.amd = false;
</script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<script>
define.amd = define._amd;
</script>
定义。_amd=define.amd;
define.amd=false;
define.amd=define.\u amd;
我通过禁用和重新启用AMD加载程序解决了问题。使用Liferay 7 CE GA4上的控制面板提示解决了问题。谢谢你,你救了我无数次的命,我总是忘记这个把戏!
<script>
Liferay.Loader.define._amd = Liferay.Loader.define.amd;
Liferay.Loader.define.amd = false;
</script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<script>
Liferay.Loader.define.amd = Liferay.Loader.define._amd;
</script>
<script>
define._amd = define.amd;
define.amd = false;
</script>
<script type="text/javascript" charset="utf8" src="https://cdn.datatables.net/1.10.19/js/jquery.dataTables.js"></script>
<script>
define.amd = define._amd;
</script>