gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 06:27:15 24 4
gpt4 key购买 nike

当有人请求图像时,是否可以在 Rails 3 中修改 HEADER?例如:

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

我想将 Access-Control-Allow-Origin: "*"添加到标题中,以便我可以通过 JavaScript 远程下载图像文件。

更新 1

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

示例网址是
http://localhost:3000/images/stuff.png

我尝试了 Rack MiddleWare,但它在访问公共(public)图像时不运行调用方法。我还尝试了 LocationMatch(在生产环境中),同样没有运气。

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

更新 2

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

最佳答案

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

在 Apache 中是这样的。

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

这在 Nginx 中。
location ~ ^/assets/ {
add_header Access-Control-Allow-Origin *;
...
}

this guide有关预编译 Assets 的更多详细信息。

更新:如果您需要在开发环境中应用 header ,您可以使用一些自定义机架中间件来实现。见 this gist例如。

关于ruby-on-rails - 用于图像的 Rails 自定义标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13576035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com