私は最近、私のSPAが検索エンジンによってクロールされるようにするためにangular2ユニバーサルに切り替えました.Angular Universalはこのユースケースを行うのに最適です.各ページに動的メタデータを挿入しようとしたときに問題が発生しました.ElementRef with Rendererを使用しようとしました. 、いくつかのangular2-metaサービスを使用しましたが、プラットフォームがブラウザではない場合は機能しません
次のコードは私の最新の試みです
import { Component, AfterViewInit, Renderer, Inject, ElementRef } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
import { DomRenderer ,NodeDomRenderer} from 'angular2-platform-node';
import {isBrowser, isNode } from 'angular2-universal';
import { Meta, MetaDefinition } from '../../services/meta.service';
@Component({
selector: 'home',
templateUrl: './home.component.html'
})
export class HomeComponent {
constructor(public meta:Meta) {
const name: MetaDefinition = {name: 'application-name', content: 'Name of my application'};
const desc: MetaDefinition = {name: 'description', content: 'A description of the page'};
const tags: HTMLMetaElement[] = this.meta.addTags([name, desc]);
}
}
if(isBrowser)
クライアント側でのみレンダリングされたコンストラクターでコードをラップすると
、ページのソースコードを表示するとレンダリングされません
レンダラー機能でレンダリングしようとしたらthe this.renderer.createElement
動かない
ページがクライアントに送信される前にサーバーでレンダリングされるメタ タグを作成するための解決策やアイデアはありますか。ASP.NET Core 1.1で角度ユニバーサルを使用しています。
前もって感謝します