我有一个Rails应用程序在生成大量图像; 即,图像控制器与显示动作取从SAN的图像,并且提供它。 我对此有caches_page能可靠地保存在一个自定义位置的文件的副本; RAILS_ROOT + /公/缓存。 该文件在那里,看起来不错。
我通过服务nginx的应用程序,它似乎很好地工作,但对我的生活,我不能把它送的,而不是击中轨动作的缓存图像文件。 我是很新,nginx的,并已研究了一段时间,但不管我怎么努力这是行不通的 - 我在做某种根本性错误。
为了澄清,我有一个这样的URI:
/images/show/123.jpg
该文件可能存在的位置:
/cache/images/show/123.jpg
我怎样才能让nginx的服务该文件并没有通过在要求?
这里是什么,我已经试过一个不完整的列表:
if (-f /cache$request_filename) {
rewrite (.*) /cache$1 break;
break;
}
if (-f /cache$uri.jpg) {
rewrite (.*) /cache$1.jpg break;
}
if (-f /cache/images/show/$request_filename) {
rewrite (.*) /cache/images/show/$1.jpg break;
}
有任何想法吗?
更新:我回答我自己的问题。 正确的规则为:
if (-f $document_root/cache$request_uri) {
rewrite (.*) /cache$1 break;
}