【发布时间】:2012-11-27 01:23:37
【问题描述】:
当有人请求图像时,是否可以在 Rails 3 中修改 HEADER?例如:
http://localhost:3000/assets/myimg.png
我想将 Access-Control-Allow-Origin: "*" 添加到标题中,以便我可以通过 JavaScript 远程下载图像文件。
更新 1
我有资源文件夹下的图像更改标题的答案,但现在我还需要为公共图像做同样的事情。我尝试了以下相同的方法,但没有运气。
示例网址是
http://localhost:3000/images/stuff.png
我尝试了 Rack MiddleWare,但它在访问公共映像时不运行 call 方法。我还尝试了 LocationMatch(在生产环境中),同样没有运气。
我应该如何尝试让公共图像结束更改标题?
更新 2
所以,我确实设法通过 LocationMatch 让它工作,但图像无法缓存。有没有办法通过 apache 禁用图像缓存?
【问题讨论】:
-
您将在哪里托管您的应用程序?如何实现这一点取决于您的生产环境,即您的静态文件服务器。
-
生产将通过 Apache 完成,开发是 WEBRICK。
-
在开发模式下,由于文件是通过 ActionDispatch::Static(而不是 Apache)提供的,因此很难获得任何标头(通过合理的代码更改)。我不知道以 Ryan 描述的方式在 Apache 中更改配置有多么困难,但是您需要复制您的生产设置以获取您的标头(当 Apache 提供文件时)或者只是在您的生产环境。
标签: ruby-on-rails ruby-on-rails-3 image http-headers