首页 > 解决方案 > 将 javascript 代码注入 Angular 模板

问题描述

我正在尝试将 js 脚本动态加载到 Angular 模板中。它工作得很好,在开发模式下源代码是正确的,但在生产模式下我得到了一些错误的代码。

下面是用于将 js 脚本注入模板的代码:

  ngAfterViewInit() {
    var s = this.document.createElement("script");
    s.src = this.src;
    s.type = "text/javascript";

    this.elementRef.nativeElement.appendChild(s);
  }

但在 prod 模式下,我得到了以下代码:

<script src="//myscript.js" type="91c3f6326904bab9258c3483-text/javascript" /> 

为什么type属性被改变了?

期望值是type="text/javascript"但得到type="91c3f6326904bab9258c3483-text/javascript"

标签: angulartypescript

解决方案


这称为散列模式,当您使用 ng build --prod angular 自动散列所有文件以禁用散列尝试使用:ng build --prod --output-hashing none 设置 --output-hashing none 将创建类似于 main.js 的文件,而不是 main.b35d16684f410b5c0406.js这将删除缓存破坏。


推荐阅读