我想不会,因为源图像仍在被使用,而这些是优化后的版本。除了占用一些存储空间外,没有其他实际危害。
你可以从 Rails 控制台清理这些文件,这涵盖了该设置默认包含的尺寸,并且不会删除由其他地方修饰器生成的图像。
# 1. 查看实际存在的内容与仍然合法注册的内容之间的差异
still_needed = Topic.thumbnail_sizes +
ThemeModifierHelper.new(theme_ids: Theme.pluck(:id)).topic_thumbnail_sizes
TopicThumbnail.group(:max_width, :max_height).count
# 2. 移除不需要的尺寸(文件 + 记录)
[[300, 300], [600, 600], [900, 900]].each do |w, h|
next if still_needed.include?([w, h]) # 不要触碰其他东西仍在使用的尺寸
TopicThumbnail
.where(max_width: w, max_height: h)
.find_each { |tt| tt.optimized_image&.destroy! }
# 没有优化图像的尝试记录不会级联删除
TopicThumbnail.where(max_width: w, max_height: h).delete_all
end
哦,是的,好主意——我可以检查是否已经存在缩略图,如果存在,就使用最佳尺寸。如果只有原始图像可用,那将始终作为后备方案。
在这里进行: