5

私は最近、私の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で角度ユニバーサルを使用しています。

前もって感謝します

4

0 に答える 0