我一直在使用expires_in为我的回复添加Cache-Control
标头。这样,当给定用户再次点击同一页面时(例如,当他们回击按钮时),在缓存过期之前,它将不会再次打击服务器。
我没有意识到,如果指定public: true
,Rails也会将HTML的副本写入其缓存。这似乎是无害的,但是如果你有很多Adsense流量,你会发现缓存很快就会填满,因为gclid
param(每个访问者都是唯一的)不会被expires_in
忽略。如果您使用某种内存缓存(如Redis或Memcache),这尤其成问题。
使用caches_action我可以指定:caches_path
参数,并使用它来忽略某些参数,例如gclid。有没有办法与expires_in
做类似的事情?或者是使用'public:false'的唯一解决方案?