首页 > 解决方案 > 为什么要尝试文件?(prerender.io nginx)

问题描述

我无法理解https://prerender.io官方 nginx conf

为什么要尝试文件?

使用永远不会被解雇try_fileslocation @prerender

我正在寻找以下行为:

如果从浏览器访问任何页面,nginx 会静态/本地提供它。如果从某个爬虫访问该页面,则它由代理提供。

官方片段似乎没有这样做,但官方文档说:

您安装在服务器上的 Prerender.io 中间件将检查每个请求以查看它是否是来自爬虫的请求。如果是来自爬虫的请求,中间件将向 Prerender.io 发送请求以获取该页面的静态 HTML。如果没有,请求将继续到您的正常服务器路由。爬虫永远不会知道您正在使用 Prerender.io,因为响应总是通过您的服务器。

有人可以帮我理解吗?

标签: nginxprerender

解决方案


来自 Prerender.io 的 Todd 在这里。

我们建议使用 try_files,例如:

try_files $uri @prerender;

这样做是为了让 $uri 可以匹配静态文件(图像等),然后,如果找不到,则运行 @prerender 配置。

有时我们会看到 $uri 与 /index.html 匹配每个请求以返回单页应用程序的 html 文件。如果是这种情况,您可以删除 try_files,而只需将 @prerender 位置的内容复制到您需要的任何位置,以便它在您的 index.html 文件被提供之前运行。


推荐阅读