Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在angular 2中,如何使每个页面的规范标记动态_Javascript_Angular_Google Webmaster Tools_Canonical Link - Fatal编程技术网

Javascript 在angular 2中,如何使每个页面的规范标记动态

Javascript 在angular 2中,如何使每个页面的规范标记动态,javascript,angular,google-webmaster-tools,canonical-link,Javascript,Angular,Google Webmaster Tools,Canonical Link,在angular 2中,如何使规范标记在每个页面上都是动态的 这是我的索引页标签: <link rel="canonical" href="https://mywebsite.co.uk" /> 如何使其成为动态的,例如,如果在博客页面上,在运行时它应该是这样的: <link rel="canonical" href="https://mywebsite.co.uk/blog" /> 我正在使用angular版本4、webpack和带有ng2元数据的t

在angular 2中,如何使规范标记在每个页面上都是动态的

这是我的索引页标签:

  <link rel="canonical" href="https://mywebsite.co.uk" />

如何使其成为动态的,例如,如果在博客页面上,在运行时它应该是这样的:

  <link rel="canonical" href="https://mywebsite.co.uk/blog" />

我正在使用angular版本4、webpack和带有ng2元数据的typescript来更改我所有URL的标题、说明和关键字


我只需要更改seo google bot的规范标签。

我实现了一个在我的页面组件的ngOnInit函数中调用的服务:

import { Inject, Injectable } from '@angular/core';
import { DOCUMENT } from '@angular/common';

@Injectable()
export class LinkService {

  private link: HTMLLinkElement;

  constructor(@Inject(DOCUMENT) private doc) { }

  createLinkForCanonicalURL() {
    if (this.link === undefined) {
      this.link = this.doc.createElement('link');
      this.link.setAttribute('rel', 'canonical');
      this.doc.head.appendChild(this.link);
    }
    this.link.setAttribute('href', this.doc.URL.split('?')[0]);
  }
}

来源:

@DavidL对于规范标记,我尝试删除它并添加它。网站管理员工具仍然不高兴。不知道如何使其动态在角度版本4诚实你得到答案吗??