【问题标题】:Dragonfly on the fly thumbs, server side cache?蜻蜓飞拇指,服务器端缓存?
【发布时间】:2017-06-15 13:32:41
【问题描述】:

我正在使用蜻蜓动态生成拇指,但我注意到它们是在每次重新加载单个页面时生成的,这并不好。阅读蜻蜓文档,我看到建议添加 rack-cache gem,但该 gem 的文档说:

产生新鲜感(Expires、Cache-Control)和/或验证(Last-Modified、ETag)

所以,这依赖于客户端中的缓存,这对我来说毫无意义。如果我有数千次访问,我不想为每个访问生成拇指,而只是依赖于每个访问都会有一个缓存副本这一事实。

我想在服务器端实现某种缓存,如果已经存在具有该尺寸的文件,则避免 DragonFly 再次生成它。

【问题讨论】:

    标签: ruby-on-rails caching dragonfly-gem


    【解决方案1】:

    您是正确的,只是将 ETag 和缓存控制标头发送到客户端只会有一点用处。

    the author is talking about 正在使用像 SquidVarnishRack::Cache 这样的反向代理,它们充当客户端和您的 Rails 应用程序之间的中间人 - 所以当客户端请求 /my/stored/image/300x300.jpg 时,反向代理将简单静态地提供资源,而请求永远不会命中您的 Rails 应用程序(除非缓存是陈旧的)。

    您可以将 Dragonfly 设置为使用文件存储 - 但它的性能将低于反向代理:

    datastore :file,
      # directory under which to store files
      root_path: 'public/dragonfly',    
      # - defaults to 'dragonfly' relative to current dir
      # root for urls when serving directly from datastore using remote_url
      server_root: 'public'             
    

    【讨论】:

    • 我有,但它不存储缩略图。只有上传的原始文件,是否可以将生成的缩略图文件放在公共文件夹中,以避免在每次页面加载时生成?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多