我有静态文件,这些文件通过我的 Rails 3 应用程序中的 Thin 提供服务。这些文件没有路径,它们只是通过 url 直接引用。但是,似乎文件正在被缓存。我不确定缓存是由于 Web 服务器 (Thin) 还是由于浏览器 (Chrome) 而发生的。
有没有办法在 Rails 3 或 Windows 上的 Thin 中禁用静态文件缓存?
我有静态文件,这些文件通过我的 Rails 3 应用程序中的 Thin 提供服务。这些文件没有路径,它们只是通过 url 直接引用。但是,似乎文件正在被缓存。我不确定缓存是由于 Web 服务器 (Thin) 还是由于浏览器 (Chrome) 而发生的。
有没有办法在 Rails 3 或 Windows 上的 Thin 中禁用静态文件缓存?
强制禁用缓存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>