Ala*_*leh 5 asp.net-core angular-universal angular
我最近切换到angular2通用,以使我的SPA被搜索引擎抓取,而Angular通用在执行此用例方面很棒,当我尝试为每个页面注入动态元数据时遇到问题,我尝试将ElementRef与Renderer结合使用,并且我使用了一些angular2-meta服务,但是当平台不是Browser时,该服务不起作用
以下代码是我的最新尝试
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]);
}
}
Run Code Online (Sandbox Code Playgroud)
当我将代码包装在构造函数中且
if(isBrowser)仅在客户端呈现时,但在查看页面的源代码时却不呈现
当我试图渲染器进行渲染the this.renderer.createElement功能不起作用
是否有任何解决方案或想法,使发送到客户端页面之前在服务器渲染的meta标签,我使用角万能与ASP.NET核心1.1
提前致谢
| 归档时间: |
|
| 查看次数: |
311 次 |
| 最近记录: |