我有一个Rails的网络应用程序,它具有静态文件在动态宁静的网址下。例如:Nginx的网址重写宁静的网址
/projects/1/attachments/some_file.xls
我想设置Nginx的重定向到服务器上的静态文件:
/public/attachments/1/some_file.xls
其中1是动态的项目ID。
位置块和重写语句如何查找Nginx配置文件?
UPDATE
我下面标记,因为它回答了我原来的问题的答案。虽然在我的情况下重写我的项目附件URL是没有必要的。我忘了我已经在我的Rails视图erb中重映射了这个url。
我的真正目标是阻止Thin将缓存响应头添加到我的附件文件中。最终,我可以通过添加像这样的附件的位置来防止这种情况:
location /attachments/ {
expires off;
add_header Pragma "no-cache";
add_header Cache-Control "no-cache, no-store";
access_log off;
break;
}
呃,我其实已经忘了这些网址已经在View erb中手动重新映射了。我真正想要实现的是绕过Thin,这样我就可以打开与缓存相关的响应头。 – 2012-08-08 19:58:50
此外,这些附件不是图像。他们生成了sql文件,生成了excel文件,上传了csv文件等。我没有使用Paperclip或attachment_fu,尽管我当时评估过它们。我只是将这些附件存储在public/attachments /:project_id下并隐藏了用户的这一事实。用户可以看到url projects /:project_id/file_name。没有模型。 – 2012-08-08 20:03:10
我提到的所有库都可以处理任何文件类型,而不仅仅是图像。但是,通常当我做你喜欢的事情时,我会创建一个Assets模型来封装所有这个文件存储逻辑。 – SupaIrish 2012-08-09 09:27:16