加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 用于图像的Rails自定义标题

发布时间:2020-12-17 02:37:35 所属栏目:百科 来源:网络整理
导读:当有人请求图像时,是否可以修改Rails 3中的HEADER?例如: http://localhost:3000/assets/myimg.png 我想在标题中添加Access-Control-Allow-Origin:“*”,以便我可以通过JavaScript远程下载图像文件. 更新1 我有资产文件夹下的图像的答案来更改标题,但现在
当有人请求图像时,是否可以修改Rails 3中的HEADER?例如:

http://localhost:3000/assets/myimg.png

我想在标题中添加Access-Control-Allow-Origin:“*”,以便我可以通过JavaScript远程下载图像文件.

更新1

我有资产文件夹下的图像的答案来更改标题,但现在我还需要为公共图像做同样的事情.我尝试了下面相同的方法,但没有运气.

示例网址将是

http://localhost:3000/images/stuff.png

我尝试了Rack MiddleWare,但在转到公共图像时它没有运行调用方法.我也试过了LocationMatch(在生产环境中),同样没有运气.

我如何尝试公共图像结束更改标题?

更新2

所以,我确实设法让它通过LocationMatch工作,但图像无法缓存.有没有办法通过apache禁用图像缓存?

解决方法

资产将被“编译”并由Web服务器(Nginx / Apache)直接提供,因此Rails不会在生产中提供它.您需要修改Web服务器的配置以添加标头.

在Apache中有类似的东西.

<LocationMatch "^/assets/.*$">
??Header add Access-Control-Allow-Origin "*"
  ...
</LocationMatch>

这在Nginx.

location ~ ^/assets/ {
  add_header Access-Control-Allow-Origin *;
  ...
}

有关预编译资产的更多详细信息,请参见this guide.

更新:如果您需要在开发环境中应用标头,可以使用一些自定义机架中间件.有关示例,请参见this gist.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读