如何在 rails 应用程序中存储或保留内存加载的图像



我有这个定义:

def images_base64(images)
images.map {|image| image.image}
end

然后我在 haml 文件中加载这样的图像:

- images_base64(@document.meta.images).each do |image|
= image_tag "data:image/png;base64, #{image}", width: '600px'

有没有办法在 Rails 中存储或保留内存加载的图像?

从表面上看,这听起来像是一个坏主意,而不知道为什么要这样做?这些图像不只是在S3中的原因吗?我之所以这么说,是因为使用 S3 之类的东西来提供文件比让 Rails 在其响应中重新洗牌大文件更有效的资源使用。

此外,当您说"在记忆中"时,这可能意味着很多事情。就像您可能意味着在Memcache或Redis中缓存这个巨大的图像标签列表一样。因此,您可以使用类似cache document do的内容对 HAML 文件中的 images_base64 缓存进行分段 这将在缓存存储中存储带有 base64 图像字符串的 image_tag html 块。

这是一个更糟糕的想法:你可以把图像记住到内存中。这里有一个关于使用参数进行记忆的链接:http://gavinmiller.io/2013/advanced-memoization-in-ruby/。我提到这一点只是因为你说"内存加载"。但我真的不认为你想要这种方法。

最新更新