目标:从IE11和Edge中的原始数据渲染图像。
问题:
<img src='http://my-rails-app-server.com/images/123'>
的图像的base64编码在其他浏览器中呈现数据,但它不会在IE中呈现,因为此类型的数据总是超过32kb的限制标签问题:
在我的Rails应用程序中,是否可以设置某种代理,以便我可以构建一个到我的Rails应用服务器的URL并在图像标记中使用它,例如class ImageProxy < ApplicationController
def show
data = ExternalImageDataRetriever.get_data_from("internal-network-image-service/images/123")
render something: data
end
end
,然后它将命中服务检索图像数据,然后以某种方式将其返回到浏览器。
一些伪代码:
{{1}}
答案 0 :(得分:0)
事实证明这非常容易。
我已经构建了一个工具,用于向网络中的外部API发出请求以获取图像。调用API会返回两件重要的事情:原始图像数据和mime类型。
我所要做的只是通过铁轨传递这些。
控制器动作最终看起来像这样
class ImageProxy < ApplicationController
def show
service_response = ExternalImageDataRetriever.get_data_from("internal-network-image-service/images/123")
render text: service_response.data, layout: nil, content_type: service_response.mime_type
end
end
之后,它只是在视图中的图像标记中使用该控制器操作的路径。
<%= image_tag image_proxy_path(id: 123) %>