【问题标题】:Angular2 error after deployment on AWS server ""Only void and foreign elements can be self closed "head" ("[ERROR ->]<head/>"在 AWS 服务器上部署后出现 Angular2 错误“”只有无效和外来元素可以自我关闭“头”(“[ERROR ->]<head/>”
【发布时间】:2016-05-30 06:09:10
【问题描述】:

在我的本地机器上完成并测试了一个 Angular2 应用程序后,我决定将它移动到一个带有 Apache 的 AWS 云服务器上。 我从 git 克隆了 sw,但是,当我启动应用程序时,我在浏览器控制台上收到错误消息:

EXCEPTION: Template parse errors:
Only void and foreign elements can be self closed "head" ("[ERROR ->]<head/>

经过一些研究,我发现我所有的外部 html 模板都神奇地丰富了一个起始 &lt;head/&gt; 标记,我在我的代码中看不到它的踪迹。 为了解决这个问题,我不得不关闭 mod-pagespeed 。由于我不熟悉 Apache 配置,我不知道这可能会产生哪些副作用以及是否有更好的解决方案。任何帮助将不胜感激。

【问题讨论】:

  • 它与 apache 无关,也与 &lt;head .../&gt; 无关。 angular2模板中不能使用自闭标签,详情为here

标签: apache angular pagespeed mod-pagespeed


【解决方案1】:

我相信mod-pagespeed 有一个选项,如果在文档中(正文之前)找不到它,它会自动将head 标签添加到 html 文档中。要关闭此功能,请将其添加到您的 pagespeed apache 配置中(即在 .htaccess 中):

为了防止 javascript 更改,还禁止使用更多过滤器

ModPagespeedForbidFilters add_head,rewrite_javascript,rewrite_javascript_inline,combine_javascript,inline_javascript

这样您仍然可以享受 mod-pagespeed 的其余功能:)

【讨论】:

  • 我已打开 mod-pagespeed 并根据您的建议应用了过滤器。现在情况好多了,但我仍然看到一个奇怪的行为:在 Safari (Mac) 上,控制台在 angular2-polyfills.js 177 处显示一个错误,指出“ReferenceError:找不到变量:页面速度”;在 Chrome 上出现不同的错误“未捕获的 ReferenceError:页面速度未在 VM2699 14:1 中定义;在 Firefox 上一切正常。你知道可能的原因吗?提前致谢
  • @Picci 我已经编辑了我的答案。您可以先尝试禁用所有这些过滤器..然后再回头看看是哪个过滤器导致了它。如果这不起作用,您能否提供一个关于其托管位置的链接?
猜你喜欢
  • 1970-01-01
  • 2020-12-11
  • 1970-01-01
  • 2019-01-02
  • 1970-01-01
  • 2021-05-12
  • 1970-01-01
  • 2020-03-19
  • 2020-01-18
相关资源
最近更新 更多