1

我有静态文件,这些文件通过我的 Rails 3 应用程序中的 Thin 提供服务。这些文件没有路径,它们只是通过 url 直接引用。但是,似乎文件正在被缓存。我不确定缓存是由于 Web 服务器 (Thin) 还是由于浏览器 (Chrome) 而发生的。

有没有办法在 Rails 3 或 Windows 上的 Thin 中禁用静态文件缓存?

4

1 回答 1

0

强制禁用缓存config.action_controller.perform_caching = false

尝试检查的其他选项

config.serve_static_assets = false

config.static_cache_control = "public, max-age=0"

config.assets.digest = false

https://devcenter.heroku.com/articles/rack-cache-memcached-static-assets-rails31#serve_static_assets


要禁用浏览器缓存,您可以尝试

application_controller.rb..

  before_filter :set_cache_buster

  def set_cache_buster
    response.headers["Cache-Control"] = "no-cache, no-store, max-age=0, must-revalidate"
    response.headers["Pragma"] = "no-cache"
    response.headers["Expires"] = "Fri, 01 Jan 1990 00:00:00 GMT"
  end

信用https://stackoverflow.com/a/748646/643500


对于服务器配置,您可以更改缓存标头,例如:

对于阿帕奇:

<LocationMatch "^/assets/.*$">
  Header unset ETag
  FileETag None
  # RFC says only cache for 1 year
  ExpiresActive On
  ExpiresDefault "access plus 1 year"
</LocationMatch>

http://guides.rubyonrails.org/asset_pipeline.html

于 2012-05-03T19:46:02.200 回答