typescript - 在 Angular 9 的 Facebook 共享预览中显示某个网页的元数据
问题描述
我正在尝试使用此共享网址在 Facebook 上共享我的 angular 9 项目的某个网页:
<a target="_blank" href='{{ "https://www.facebook.com/sharer/sharer.php?u="+recipeDetails?.web_link }}'>
我还使用 Meta 更新组件中的元标记:
this.metaService.updateTag({ property: "og:title", content: "Title goes here"});
this.metaService.updateTag({ property: "og:description", content: "Description goes here"});
this.metaService.updateTag({ property: "og:url", content: "Url goes here"});
this.metaService.updateTag({ property: "og:image", content: "Image url goes here"});
当我在浏览器中检查元素时,网页会显示元标记。但是由于 Angular 是单页应用程序,当我从浏览器查看页面源代码时,浏览器会向我显示从 index.html 分配的初始元数据。结果,当我在 Facebook 上共享某个网页时,Facebook 共享预览向我显示了从 index.html 分配的初始元数据,而不是更新的元数据。
我的问题是:如何在 Facebook 分享预览中显示我更新的元数据?
解决方案
您必须启用服务器端渲染才能解决此问题。Facebook 不会运行你的 JavaScript 代码,他们使用他们的爬虫来收集你共享链接的数据。而且,如果您没有服务器端渲染,它们将无法抓取数据,并且将始终显示您的主页元数据。所以启用 ssr 并试一试。
推荐阅读
- ios - 我想在单个表格视图中使用来自 nib 的两个不同的自定义单元格。两个原型电池具有不同的高度
- python-3.x - 预提交的设置环境
- python - 使用 importlib.import_module 时出现 ModuleNotFoundError
- excel - VBA - 如何从单个单元格复制数据并粘贴到合并的单元格中
- google-apps-script - 以编程方式创建 Google Sheet 并获取它的 JSON URL
- r - 如何在使用“对”函数创建的图上绘制线性回归线
- c - 为什么我们使用return;无效函数中的语句?
- mysql - 如何解决触发时的迁移错误?
- dart - dart:强制执行强类型比较
- vba - 每个 If Then 循环的 VBA 表 - 文本重复