所以我听说过很多有关Rails 5.2和ActiveStorage的信息,并且有很多关于ActiveStorage替代Rails图像处理的话题。
我的问题是,我已经设置并升级了我的应用。我上传了一张图片,将其保存到我的Google Cloud存储桶中,就可以了。
问题是,在我看来,我已经尝试过类似的事情:
<%= image_tag((current_user.avatar), size: "100x100") %>
和
<%= image_tag(rails_blob_path(current_user.avatar, disposition: "attachment"), size: "100x100") %>
这些将显示上传的图像约5分钟,然后消失在我的视野中。如果我检查,它显示错误400。如何解决此问题? 我希望我的用户头像永久显示,而不是消失。
请提出建议,一直在搜索和阅读有关解决此问题的时间。
编辑:执行“在新标签页中打开图像”会导致此XML错误
<Error>
<Code>ExpiredToken</Code>
<Message>The provided token has expired.</Message>
<Details>
Request signature expired at: 2018-10-09T20:50:09+00:00
</Details>
</Error>
答案 0 :(得分:1)
图片网址的默认有效期为5分钟(https://guides.rubyonrails.org/active_storage_overview.html#linking-to-files)
您可能可以在活动存储配置中为Google云服务设置新的密钥url_expires_in
答案 1 :(得分:0)
诀窍是使用service_url在应用程序视图中保留图像。
例如:<%= image_tag(@user.avatar.service_url) %>