Azure + Polymer 2应用程序:在Chrome上工作但不在IE

时间:2017-07-18 15:16:57

标签: azure internet-explorer polymer azure-web-app-service polymer-2.x

我不知道我必须在这里粘贴代码的哪些部分,但我的情况如下:

  • 聚合物2应用程序,由Starter Kit创建(对于我使用的所有基本' Web组件,肯定是混合的)
  • Azure订阅上的现有应用服务
  • 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 Service上运行应用程序!

更新

关于Aaron Chen的请求(感谢您的关注,Aaron!:-))我补充说,经过很长一段时间我收到了很多错误(我再说一次,只在IE中): First screen of errors Second screen of errors 我现在想的是,以任何方式配置AppService不应该是一个问题:默认情况下,我正在谈论一堆&#39;&#39; HTML,CSS和JS文件,应该在任何服务器中开箱即用(实际上,它们完全在我的本地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中,在源代码和编译版本上都有效)。

更新(最终,我希望)

经过大量调查后,我将问题缩小到这个可能的错误,让我们看看其他人说的话...... https://github.com/Polymer/polymer-cli/issues/827

1 个答案:

答案 0 :(得分:0)

Polymer 2.x及其原生元素是使用ES6编写的。您应该仅将编译后的ES5提供给不支持ES6的旧版浏览器。

在这种情况下,您可以使用以下命令将所有代码编译为ES5。

polymer build --js-compile

有关详细信息,请参阅Build for production