部署在Liferay中的Angular2应用程序停留在Internet Explorer 11的“正在加载...”
我正在尝试将我的Angular IO应用程序部署到Liferay平台,并且成功实现了变化。 Mozilla Firefox和谷歌浏览器呈现Liferay portlet没有任何问题,但是Internet Explorer 11 fails at it。为了让事情变得更加奇怪,该应用程序可以正常工作,IE11 on localhost意味着polyfills.ts正在按预期工作。部署在Liferay中的Angular2应用程序停留在Internet Explorer 11的“正在加载...”
编辑:通过在IE11上研究一下更多的调试器,我发现没有任何由Angular生成的js bundle被加载。在main.bundle.js,vendor.bundle.js,polyfills.bundle.js,styles.bundle.js和inline.bundle.js上的GET结果为404 Not Found。
编辑2: 404发生是因为爆炸者对GET的请求URL显然是错误的。 URL的正确语法是http://host/portlet/app/*.bundle.js
,在Internet Explorer 11中,请求URL是http://host/web/guest/page/portlet/app/*.bundle.js
。
我发现脚本的GET URL在Internet Explorer中格式不正确(编辑原始问题。@ OlafKock暗示要检查GET URL是如何形成的,所以我发现我的index.jsp文件负责下载* bundle.js文件,是缺少一个/字符
我随后开始应用以下修正:<script type="text/javascript" src="portlet/*.bundle.js"></script>
=><script type="text/javascript" src="/portlet/*.bundle.js"></script>
现在一切正常人所以在Internet Explorer 11上。
控制台上的任何错误? – DarthJDG
仅显示第一张图片中的警告。 –
至少可以处理你看到的警告:一个文件有多个'','
'等*是非法的,你不能责怪浏览器没有按照你的期望渲染它。 Liferay处理这部分标记,这意味着你的角度(或你的portlet的)内容*不能包含这个标记 –