Angular 角度通用服务器端渲染,元标记
我把我的网站搬到了Angular universal SSR, 在我搬家的过程中,我遇到了一些我认为ng universal会解决的问题 我想添加元标签,如描述,关键字等(每个页面不同) 使用Angular 角度通用服务器端渲染,元标记,angular,meta-tags,angular-universal,Angular,Meta Tags,Angular Universal,我把我的网站搬到了Angular universal SSR, 在我搬家的过程中,我遇到了一些我认为ng universal会解决的问题 我想添加元标签,如描述,关键字等(每个页面不同) 使用标题服务可以很好地工作,它改变了页面的标题。然而,如果我登陆主页,然后从主页导航到其他页面,标题不会改变,但当我查看源代码时,我在源代码中看到了变化,但在视图选项卡上没有。如果我登陆页面(或点击刷新),页面将更新为正确的标题 我尝试添加标题元标记的附加内容,但没有任何效果: this.meta.update
标题服务
可以很好地工作,它改变了页面的标题。然而,如果我登陆主页,然后从主页导航到其他页面,标题不会改变,但当我查看源代码时,我在源代码中看到了变化,但在视图选项卡上没有。如果我登陆页面(或点击刷新),页面将更新为正确的标题
我尝试添加标题元标记的附加内容,但没有任何效果:
this.meta.updateTag( {name: "description", content: 'test1234});
this.meta.addTag({name: 'description', content: 'Content description' });
或
使用vanilaJS
var doc=(document.getElementById('description');
doc.content=“test1234”;
标头部分中的元没有更改。
我不知道为什么。
任何帮助都有帮助。。
感谢为Angular Universal SSR设置元标记(仅在Angular 2上试用),您应该使用渲染器。 要设置例如标题(或更新标题),可以通过以下方式进行: 要设置元标记,您需要: 1.导入渲染器和文档
import { Renderer } from '@angular/core';
import { DOCUMENT } from '@angular/platform-browser';
2.将这些依赖项添加到构造函数:
@Inject(DOCUMENT) private document: any,
private renderer: Renderer
3.添加元标记
-范例
看这可能会有帮助,我遵循同样的方法,它对我很有效。确保您使用的是angular cli和angular的正确版本。您是否找到了发生这种情况的原因?我也有同样的问题。你认为它也适用于动态数据吗?比如对OnInit的api调用?对我来说也是一样。动态元标记不起作用。如果元标记是硬编码的,那么它可以工作。
@Inject(DOCUMENT) private document: any,
private renderer: Renderer
//-- Create new meta element inside of head tag
let elem = renderer.createElement(document.head, "meta");
//-- Set meta attributes
renderer.setElementAttribute(elem, 'name', 'description');
renderer.setElementAttribute(elem, 'content', 'Some test decription');