在Rails 6.1中提供动态生成的图像



我的应用程序使用gruffgem动态生成图像,然后提供这些图像。图片存储在app/assets/images/gruff中。图像在运行时被更改(保持相同的文件名,但更改其内容),因为这些图像包含一个条形图,其中包含随时间变化的用户信息。如果图像缺失,则生成图像,并且不要求它们长时间存在。使用image_tag提供图像。

问题是出现了两种类型的间歇性问题。一个是生成的图像链接有时会有错误的指纹,即使图像在呈现image_tag之前刚刚更新。(因此404。)

第二个问题是,即使我可以验证图像存在于服务器上,我仍然偶尔得到一个ActionView::Template::Error (The asset "gruff/image-1.png" is not present in the asset pipeline.):

如果这应该是工作,我如何进一步深入了解问题是什么?

如果资产管道是不一个好的机制,我想做什么,社区有什么建议呢?

对于您的问题,一个更好的想法是使用activestorage保存生成的图像,因此您应该创建这样的模型:

class DynamicImages < ApplicationRecord
has_one_attached :image
end

并在使用gruff生成此图像时创建一个记录。

最新更新