控制 Rails 中的公共文件响应代码



假设我的 Rails 应用程序中有一个 POST 端点,它在其中获得一个名为 state 的参数,它将是 200 或 503 的整数。

如何使 Robots.txt 文件以该 POST 端点的给定状态响应,我的意思是我需要一种方法来控制该唯一文件 (Robots.txt( 的响应代码,具体取决于该 POST 端点。

顺便说一句,问题不在于如何存储该状态或其他东西,而在于如何更改公共文件的响应代码?

这可能吗?

我对此的想法和现在尝试的是让一个与机器人.txt路线相匹配的控制器动作,但我觉得这样做太愚蠢了。

是的,如果您希望 Rails 参与决定给定 URL 的响应,那么您将需要定义一个控制器操作来处理这些请求。

您可以使用send_file实际执行文件发送部分。

根据Web服务器的配置,您可能需要将实际的robots.txt文件存储在public/以外的其他位置 - 否则它可能在没有Rails机会参与的情况下被提供。


相反,您可以安排在运行时重写nginx(例如(配置文件,具体取决于您想要的响应代码...但我认为这样做是愚蠢的。

一个更实用的中间立场是让Rails创建或删除一个标记文件,然后根据该文件是否存在在nginx配置中使用条件文件。不过,这将是一个nginx问题...如果您有多台服务器,则会变得复杂。

最新更新