Rails 6 - 一段时间后找不到 ActiveStorage 404
Rails 6 - ActiveStorage 404 not found after sometime
X 天一切正常,但随后,随机照片出现崩溃...
在VIEW中我显示的图片是这样的:
<%= link_to image_tag(f.image_2.variant(resize_to_fill: [30,30]),
:alt => 'x abc' + f.username.to_s, loading: "lazy" ),
f.image_2.variant(resize_to_limit: [800,600]),
:class=>'large_photo_box fancybox'
%>
Class 有:
has_one_attached :image_1
has_one_attached :image_2
has_one_attached :image_3
Production.rb:
config.action_controller.perform_caching = true
config.action_controller.enable_fragment_cache_logging = true
config.cache_store = :file_store, "/tmp/my_cache"
config.public_file_server.headers = {
'Cache-Control' => "public, max-age=#{10.days.to_i}"
}
它有效,但是......在 X 天后照片停止显示并为查看器放置无照片图标。
何时有效:
- 当我在新标签中复制URL图片时-图片显示
- 当我打开 chrome 开发工具 ( CTRL + SHIFT + J ) 并重新加载页面时 - 照片再次显示
这是怎么回事?这里有 RoR 程序员吗? ;)
我没有计算天数,但问题可能出在 production.rb 缓存中?
未找到 404 示例 URL:
如果您希望变体永久 url,请在 config/storage.yml
中为您的服务添加 public: true
。
更多here
我认为这是解决方案:
"要为 blob 生成永久 URL,您可以将 blob 传递给 url_for 视图助手。这会生成一个 URL 与路由到 blob 的 RedirectController
的 blob signed_id
如果没有任何错误,过几天就会看到。
X 天一切正常,但随后,随机照片出现崩溃...
在VIEW中我显示的图片是这样的:
<%= link_to image_tag(f.image_2.variant(resize_to_fill: [30,30]),
:alt => 'x abc' + f.username.to_s, loading: "lazy" ),
f.image_2.variant(resize_to_limit: [800,600]),
:class=>'large_photo_box fancybox'
%>
Class 有:
has_one_attached :image_1
has_one_attached :image_2
has_one_attached :image_3
Production.rb:
config.action_controller.perform_caching = true
config.action_controller.enable_fragment_cache_logging = true
config.cache_store = :file_store, "/tmp/my_cache"
config.public_file_server.headers = {
'Cache-Control' => "public, max-age=#{10.days.to_i}"
}
它有效,但是......在 X 天后照片停止显示并为查看器放置无照片图标。
何时有效:
- 当我在新标签中复制URL图片时-图片显示
- 当我打开 chrome 开发工具 ( CTRL + SHIFT + J ) 并重新加载页面时 - 照片再次显示
这是怎么回事?这里有 RoR 程序员吗? ;)
我没有计算天数,但问题可能出在 production.rb 缓存中?
未找到 404 示例 URL:
如果您希望变体永久 url,请在 config/storage.yml
中为您的服务添加 public: true
。
更多here
我认为这是解决方案:
"要为 blob 生成永久 URL,您可以将 blob 传递给 url_for 视图助手。这会生成一个 URL 与路由到 blob 的 RedirectController
的 blob signed_id如果没有任何错误,过几天就会看到。