【问题标题】:In Angular 4/5, instead of prerendering each request, is it possible to prerender only request that coming from Facebook and Twitter crawler在 Angular 4/5 中,是否可以只预呈现来自 Facebook 和 Twitter 爬虫的请求,而不是预呈现每个请求
【发布时间】:2018-12-05 05:19:21
【问题描述】:
在 Angular 4/5 中,不是预先呈现每个请求,而是可以只预先呈现来自 Facebook 和 Twitter 爬虫的请求,即当用户在 Facebook 或 Twitter 上分享这些 URL 时。
我在想我们是否可以使用反向代理来实现这样的事情,如果请求来自 Facebook 或 Twitter 机器人,那么我可以从预渲染 Angular 代码的不同环境中为它们提供服务。
我有一个无法缓存的动态网站,而且由于流量过大,预渲染每个请求的效率很低。
【问题讨论】:
标签:
angular
angular5
reverse-proxy
facebook-share
twitter-share
【解决方案1】:
好的,所以我找到了 2 个解决方案。
- Google、Facebook、Twitter 等爬虫都有自己的用户代理,即
谷歌机器人
冰机器人
推特机器人
facebookexternalhit
联动机器人
因此,在 apache 或 nginx 中,我们可以编写条件以仅预渲染来自机器人的请求。
-
以任何语言创建一个应用程序,仅动态服务于 Angular 应用程序的 index.html 文件,您可以在运行时根据请求的 url 在其中嵌入 og 元标记。
希望这个解决方案对某人有所帮助。