Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.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 如何配置Apache以处理丢失的映像资产?_Ruby On Rails_Apache_Mod Rewrite - Fatal编程技术网

Ruby on rails 如何配置Apache以处理丢失的映像资产?

Ruby on rails 如何配置Apache以处理丢失的映像资产?,ruby-on-rails,apache,mod-rewrite,Ruby On Rails,Apache,Mod Rewrite,我的Rails应用程序中的所有映像资产都位于/public/images中,如果它们存在于服务器上,则由Apache提供服务。如果请求丢失的映像,Apache将无法为其提供服务,因此它将被传递到Rails,Rails随后将引发404 理想情况下,我希望任何缺少映像的请求都在Apache级别处理,而不是转发到Rails上。如何最好地实现这一点?如果目录和文件不存在,则使用mod_rewrite重定向到404页面 RewriteCond %{REQUEST_FILENAME} !-f Rewri

我的Rails应用程序中的所有映像资产都位于
/public/images
中,如果它们存在于服务器上,则由Apache提供服务。如果请求丢失的映像,Apache将无法为其提供服务,因此它将被传递到Rails,Rails随后将引发404


理想情况下,我希望任何缺少映像的请求都在Apache级别处理,而不是转发到Rails上。如何最好地实现这一点?

如果目录和文件不存在,则使用mod_rewrite重定向到404页面

RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule .? /404.html [L]
这里,-f匹配现有文件名,-d匹配现有目录名。这将检查请求的文件名是否不是现有文件名或目录名,然后再将其重定向到404页面(或您喜欢的任何页面)。

“虚拟”Rails路由将没有文件,因此此操作将失败。我错过了什么?