我不知道我必须在这里粘贴代码的哪些部分,但我的情况如下:
-
Polymer 2应用程序,从Starter Kit创建(对于我使用的所有'basic' Web组件,肯定是混合的)
-
Azure订阅上的现有App Service
-
聚合构建es5-bundled版本(其中一个预设),以避免与IE冲突而无法识别ES6语法
-
生成的版本的FTP到Azure中的App Service的wwwroot目录
在Chrome和FireFox中开箱即用,不在IE中工作(空白页,没有错误) . 我在DOM Explorer中看到的是app元素未加载:它显示为 <my-app></my-app>
我还尝试在Cloud Shell控制台上全局安装polymer-cli,重启App Service,但没有运气 .
在index.html文件中,相关部分是通常的包含:
<script src="/bower_components/webcomponentsjs/webcomponents-loader.js"></script>
<link rel="import" href="/src/my-app.html">
然后我也尝试引入:
<link rel="import" href="/bower_components/polymer/polymer-element.html">
但又一次,没有运气 .
当问题只出现在一个浏览器上时,它真的是一场噩梦! :-(
最后一件事:如果我在本地主目录上运行 polymer serve
,在本地 es5-bundled
目录上运行,那么每个人都在IE上工作......所以只有当我尝试在App服务上运行应用程序时才会出现问题!
更新
关于Aaron Chen的请求(感谢您的兴趣,Aaron!:-))我补充说,经过很长一段时间后我得到了很多错误(我再说一次,只在IE中):
我的'm thinking now is that it shouldn'是一个配置问题的问题AppService以任何方式:默认情况下,我应该在任何服务器中运行开箱即用(实际上,它们完全在我的本地Node.js服务器上,部分地,在AppService,Chrome和FireFox正在工作......)
更新2
另一个问题出现在我的脑海中:如果我能用简单的 polymer serve
(我的意思是,在源代码主目录下)启动本地应用程序,那么IE(11)如何需要ES5编译版本的Polymer 2应用程序呢? ,本地这适用于所有浏览器,包括Internet Explorer?原始源代码是用ES6编写的!
更新3
我看到的第一个错误来自一个内部的Polymer文件:/bower_components/polymer/lib/utils/case-map.html,我很确定它是在本地提供的相同文件...所以它更令人费解...
更新4
我刚做了最后一次测试:我从主目录中部署了原始源代码,因此没有任何编译 . 最终结果是一样的:在Chrome和FireFox中工作,而不是在IE中工作,只有相同的错误 . 看起来编译阶段对IE行为没有任何影响(即使它仍在本地工作,在IE中,在源代码和编译版本上都有效) .
更新(最终,我希望)
经过大量的调查,我把问题缩小到这个可能的bug,让我们看看其他人说的话......
https://github.com/Polymer/polymer-cli/issues/827
1 回答
Polymer 2.x及其原生元素使用ES6编写 . 您应该仅将编译的ES5提供给不支持ES6的旧版浏览器 .
在这种情况下,您可以使用以下命令将所有代码编译为ES5 .
有关详细信息,请参阅Build for production .