在 Angular 4/5 中,是不是可以只预呈现来自 Facebook 和 Twitter 爬虫的请求,而不是预呈现每个请求
Posted
技术标签:
【中文标题】在 Angular 4/5 中,是不是可以只预呈现来自 Facebook 和 Twitter 爬虫的请求,而不是预呈现每个请求【英文标题】: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 代码的不同环境中为它们提供服务。
我有一个无法缓存的动态网站,而且由于流量过大,预渲染每个请求的效率很低。
【问题讨论】:
【参考方案1】:好的,所以我找到了 2 个解决方案。
-
Google、Facebook、Twitter 等爬虫都有自己的用户代理,即
因此,在 apache 或 nginx 中,我们可以编写条件以仅预渲染来自机器人的请求。
以任何语言创建一个应用程序,仅动态服务于 Angular 应用程序的 index.html 文件,您可以在运行时根据请求的 url 在其中嵌入 og 元标记。
希望这个解决方案对某人有所帮助。
【讨论】:
以上是关于在 Angular 4/5 中,是不是可以只预呈现来自 Facebook 和 Twitter 爬虫的请求,而不是预呈现每个请求的主要内容,如果未能解决你的问题,请参考以下文章
如何动态呈现 pug 文件而不是使用静态 angular-cli index.html?
我可以只在使用 Angular2 Universal 的客户端中运行组件方法吗?