我对使用“ Angular Universal”由SSR(使用Node.js进行服务器端渲染)生成的HTML有问题。 在我的应用程序中,大多数情况下-SSR都运行良好,但是有两种情况根本没有效果。
<title>
标签内容我在title
标记中有一些默认值,在从HTTP请求中检索了一些数据后,我正在更改特定的路由。
为此,我正在使用:
import { Title } from '@angular/platform-browser';
titleService.setTitle('NewTitle');
从浏览器/用户的角度来看-完全可以正常工作。但是,当我在浏览器中进入页面源或使用curl检索页面源时- HTTP调用的新值不可见,只有默认值。
<script type="application/ld+json">
项目中的一项要求是动态生成数据集 (https://developers.google.com/search/docs/data-types/dataset)表示应用程序的子页面。我尝试使用本教程中的解决方案:https://coryrylan.com/blog/angular-seo-with-schema-and-json-ld
但是使用HTTP调用异步生成的JSON在<ngx-json-ld>
标签内 未定义 。
我也尝试使用innerHtml
在没有第三方库的情况下独自完成此操作:
<div [innerHtml]="jsonLDString"></div>
jsonLDString
的消毒方式是:
this.sanitizer.bypassSecurityTrustHtml(this.jsonLDString);
输出与第一个问题完全相同:仅使用SSR呈现默认值,如果通过浏览器中的“检查元素”选项在页面上查找,则可以看到正确的值。