我有一个角项目,index.html是应用程序的主要入口点,就像其他角项目一样,它包含链接。
正如您在下面的html中所看到的,有一个插值,它是来自环境配置的${environment.code}
。
google标签管理器id的值应该是${environment.code}
的值,这对于开发、过渡和生产是不同的。
问题是environment.code无法在index.html中访问(尝试了不同的方法)
有没有办法修改index.html或者至少修改google标签管理器的id值来适应不同的环境?谢谢,
索引.html代码
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="Cache-Control" content="max-age=0, must-revalidate"/>
<meta http-equiv="Pragma" content="no-cache"/>
<meta http-equiv="Expires" content="0" />
<title>m</title>
<base href="/">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="sec-validation" content="d1343a3ae51-8f7b-4038-bfc8-c56565485456547a4d">
<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="preconnect" href="https://fonts.gstatic.com">
<link href="https://fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined|Material+Icons+Two+Tone|Material+Icons+Round|Material+Icons+Sharp" rel="stylesheet">
<!-- Google Tag Manager -->
<script>(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
'https://www.googletagmanager.com/gtm.js?id=${environment.code}'+dl;f.parentNode.insertBefore(j,f);
})(window,document,'script','dataLayer',environment.code);</script>
<!-- End Google Tag Manager -->
</head>
<body class="mat-typography dx-viewport">
<!-- Google Tag Manager (noscript) -->
<noscript><iframe src="https://www.googletagmanager.com/ns.html?id=${environment.code}"
height="0" width="0" style="display:none;visibility:hidden"></iframe></noscript>
<!-- End Google Tag Manager (noscript) -->
<app-root></app-root>
</body>
</html>
main.ts代码
从“@angular/core”导入{启用生产模式};从“@angular/平台浏览器动态”导入{平台浏览器动态};
import { AppModule } from './app/app.module';
import { environment } from './environments/environment';
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule)
.catch(err => console.error(err));
环境代码
export const environment = {
production: false,
appName: 'My App',
code: 'AGRTSRS-GMSDS'
};
1条答案
按热度按时间5n0oy7gb1#
不能在
index.html
中使用env文件,但可以为每个环境提供单独的索引文件:您可以编写schematics来提取env数据和修补index.html,但这似乎太复杂了。
另一种方法是使用多个JSON配置文件,您可以将这些文件导入到env文件中,也可以使用适当的JSON文件编写构建后脚本来修补index.html。