2011-06-22 37 views
6

tôi kiểm tra các tiêu đề trên máy chủ sản xuất của tôi nhưSetting Cache-Control tiêu đề trên tài sản js trong Rails 3.1

curl --head -H "Accept-Encoding: gzip" http://foo.heroku.com/assets/mobile.js 

và tôi lấy lại tiêu đề sau đó đề nghị RAILS không thiết lập các tiêu đề cachecontrol.

HTTP/1.1 200 OK 
Server: nginx/0.7.67 
Date: Wed, 22 Jun 2011 12:01:55 GMT 
Content-Type: application/javascript 
Connection: keep-alive 
Content-Md5: efb90436a465f8a73efb467109f745f3 
Cache-Control: no-cache 
Last-Modified: Wed, 22 Jun 2011 11:46:04 GMT 
Etag: "efb90436a465f8a73efb467109f745f3" 
X-Ua-Compatible: IE=Edge,chrome=1 
X-Runtime: 0.001258 
X-Content-Digest: 6493f457e9550773761bb1c2c52ec4cb44a19c19 
X-Rack-Cache: stale, valid, store 
X-Varnish: 164373614 
Age: 0 
Via: 1.1 varnish 
Content-Encoding: gzip 

Tôi muốn lấy bộ nhớ cache véc ni của bộ nhớ đệm trong bộ nhớ đệm và chỉ làm mới trên git push. Bất kỳ ý tưởng về cách để có được điều này?

Brad

+0

Bài viết này sẽ làm sáng tỏ một số vấn đề: http://jimmycuadra.com/posts/the-challenge-of-asset-packaging-on-heroku –

Trả lời

7

Bạn phải bổ sung này trong môi trường của bạn/production.rb:

config.serve_static_assets = true 
config.static_cache_control = "public, max-age=172800" 
+1

Thậm chí 3 năm sau, bạn đã thực hiện một ngày với 'config.static_cache_control' của mình –

1

câu trả lời Camille là phù hợp với các phiên bản trước Rails 5.1

Tuy nhiên, trong Rails 5.1config.static_cache_control sẽ không được chấp nhận. Mã được cập nhật với tùy chọn có sẵn mới phải là:

config.serve_static_assets = true 
config.public_file_server.headers = { 'Cache-Control' => 'public, max-age= 172800' } 
Các vấn đề liên quan