gpt4 book ai didi

ruby-on-rails - 图像在使用 ActiveStorage 的 Rails 应用程序中消失

转载 作者:行者123 更新时间:2023-12-03 17:32:08 26 4
gpt4 key购买 nike

我在我的 Rails 应用程序中遇到了一个非常奇怪的错误。
我正在使用 ActiveStorage 在 S3 上存储图像,图像有时会出现,但有时不会。
如果向下滚动一点,一张卡片(“ Yaga 撤退”)没有缩略图。
我的代码:

<a href="#" style="background-image: url('<%= rails_representation_path(experience.thumbnail) %>')">
经验.rb
def thumbnail
self.cover.variant(resize: "300x300").processed
end
我究竟做错了什么?
更新
当我部署时,问题就消失了(我可以看到图像),即使更改与图像无关。
如果我再添加另一张卡,图像不会再次出现,除非我再次部署。
更新 2
我发现了问题,但我不知道如何解决。问题是缓存。它与 ActiveStorage 无关。该图像未显示,因为它指向旧 url。事实上,如果我清除缓存,一切正常。
在我看来,我使用集合片段缓存
<%= render partial: :experience, collection: @experiences, cached: true %>
为什么当我更新我的记录时它没有更新?
我注意到它不仅不会更新我的图像,而且如果我更改它,它也不会更新我的标题。

最佳答案

首先,很棒的应用程序!

其次,你必须检查你的终端。 ActiveStorage 不会删除其先前的状态,这意味着,如果您向现有图像添加另一个图像,则会出现错误,因为存储不为空。我认为你的“ Yaga ”图片在代码中以某种方式连接到任何进一步的上传,或者你以错误的方式使用 active_storage 。

我的建议是运行

attachment.purge_later()

在您附加图像之前(在您的 Controller 内)。另外,你用的是turbolinks吗?确保使用
$(document).on(turbolinks:load, function(){})
在运行所有 javascript 之前。

如果这没有帮助,请发布处理上传的 Controller 、存储位置和配置(确保不要发布您的凭据!)。

另外,你用的是什么主机?当图像消失时尝试进入 rails 控制台并获取“yoga”图像的 id 并查看它是否为空。

最后一件事:当我访问您的网站时,我可以看到图片。

你好!

关于ruby-on-rails - 图像在使用 ActiveStorage 的 Rails 应用程序中消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51845716/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com