Sco*_*sch 4 ruby-on-rails image http-headers ruby-on-rails-3
当有人请求图像时,是否可以修改Rails 3中的HEADER?例如:
http://localhost:3000/assets/myimg.png
Run Code Online (Sandbox Code Playgroud)
我想在标题中添加Access-Control-Allow-Origin:"*",以便我可以通过JavaScript远程下载图像文件.
更新1
我有资产文件夹下的图像的答案来更改标题,但现在我还需要为公共图像做同样的事情.我尝试了下面相同的方法,但没有运气.
示例网址将是
http://localhost:3000/images/stuff.png
Run Code Online (Sandbox Code Playgroud)
我尝试了Rack MiddleWare,但在转到公共图像时它没有运行调用方法.我也试过了LocationMatch(在生产环境中),同样没有运气.
我如何尝试公共图像结束更改标题?
更新2
所以,我确实设法让它通过LocationMatch工作,但图像无法缓存.有没有办法通过apache禁用图像缓存?
资产将被"编译"并由Web服务器(Nginx/Apache)直接提供,因此Rails不会在生产中提供服务.您需要修改Web服务器的配置以添加标头.
在Apache中有类似的东西.
<LocationMatch "^/assets/.*$">
Header add Access-Control-Allow-Origin "*"
...
</LocationMatch>
Run Code Online (Sandbox Code Playgroud)
这在Nginx.
location ~ ^/assets/ {
add_header Access-Control-Allow-Origin *;
...
}
Run Code Online (Sandbox Code Playgroud)
有关预编译资产的更多详细信息,请参阅本指南.
更新:如果您需要在开发环境中应用标头,可以使用一些自定义机架中间件.请参阅此要点以获取示例.
| 归档时间: |
|
| 查看次数: |
1368 次 |
| 最近记录: |