首页 文章

Azure Polymer 2应用程序:在Chrome上运行但在IE上运行

提问于
浏览
1

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

  • 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中):
First screen of errors

Second screen of errors
我的'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 回答

  • 0

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

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

    polymer build --js-compile
    

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

相关问题