Man*_*rio 5 ruby-on-rails heroku rails-activestorage
我在我的 Rails 应用程序中遇到了一个非常奇怪的错误。我正在使用 ActiveStorage 在 S3 上存储图像,图像有时会出现,但有时不会。
如果向下滚动一点,一张卡片(“瑜伽撤退”)没有缩略图。
我的代码:
<a href="#" style="background-image: url('<%= rails_representation_path(experience.thumbnail) %>')">
Run Code Online (Sandbox Code Playgroud)
经验.rb
def thumbnail
self.cover.variant(resize: "300x300").processed
end
Run Code Online (Sandbox Code Playgroud)
我究竟做错了什么?
更新
当我部署时,问题就消失了(我可以看到图像),即使更改与图像无关。如果我再添加另一张卡,图像不会再次出现,除非我再次部署。
更新 2 我发现了问题,但我不知道如何解决。问题是缓存。它与 ActiveStorage 无关。该图像未显示,因为它指向旧 url。事实上,如果我清除缓存,一切正常。
在我看来,我使用集合片段缓存
<%= render partial: :experience, collection: @experiences, cached: true %>
Run Code Online (Sandbox Code Playgroud)
为什么当我更新我的记录时它没有更新?我注意到它不仅不会更新我的图像,而且如果我更改它,它也不会更新我的标题。
首先,很棒的应用程序!
其次,您必须检查您的终端。ActiveStorage 不会删除其先前的状态,这意味着,如果您将另一个图像添加到现有图像中,则会出现错误,因为存储不为空。我认为您的“瑜伽”图片在代码中以某种方式与任何进一步的上传相关联,或者您以错误的方式使用了 active_storage 。
我的建议是运行
attachment.purge_later()
Run Code Online (Sandbox Code Playgroud)
在附加图像之前(在控制器内)。另外,您使用涡轮链接吗?确保使用
$(document).on(turbolinks:load, function(){})
在运行所有 JavaScript 之前。
如果这没有帮助,请发布处理上传的控制器、存储位置和配置(确保不要发布您的凭据!)。
另外,你用的是什么主机?当图像消失时尝试进入 Rails 控制台并获取“yoga”图像的 id 并查看它是否变为空。
最后一件事:当我访问您的网站时,我可以看到该图像。
问候!
| 归档时间: |
|
| 查看次数: |
1534 次 |
| 最近记录: |