Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 控制Rails中的公共文件响应代码_Ruby On Rails_Ruby On Rails 4_Asset Pipeline_Nginx - Fatal编程技术网

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

Ruby on rails 控制Rails中的公共文件响应代码,ruby-on-rails,ruby-on-rails-4,asset-pipeline,nginx,Ruby On Rails,Ruby On Rails 4,Asset Pipeline,Nginx,假设我在我的Rails应用程序中有一个POST端点,其中它获得一个名为state的参数,该参数将是200或503的整数 如何使Robots.txt文件从该POST端点以给定状态响应,我的意思是我需要一种方法来根据该POST端点控制该唯一文件(Robots.txt)的响应代码 顺便说一句,问题不在于如何存储该状态或其他内容,而在于如何更改公共文件的响应代码 可能吗 我现在考虑的是让控制器动作与robots.txt路由匹配,但我觉得这样做太愚蠢了。是的,如果您希望Rails参与决定给定URL的响应,

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

如何使Robots.txt文件从该POST端点以给定状态响应,我的意思是我需要一种方法来根据该POST端点控制该唯一文件(Robots.txt)的响应代码

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

可能吗


我现在考虑的是让控制器动作与robots.txt路由匹配,但我觉得这样做太愚蠢了。

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

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

根据web服务器的配置,您可能需要将实际的
robots.txt
文件存储在
public/
以外的其他位置,否则Rails甚至没有机会参与进来,也可能无法提供该文件


您可以根据需要的响应代码,在运行时重新编写nginx(比如)配置文件。。。但我认为那样做是愚蠢的

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