我只是意识到每次我更改页面时,我的 rails 应用程序上的 application.css & .js & fonts 文件总是会重新下载。这给服务器带来了相当大的负担并减慢了加载时间。
这里的任何人都可以向我推荐如何优化缓存,最好是我可以遵循的最佳实践,因为坦率地说,我在部署优化方面不是很有经验。
ps:我已经阅读并完成了http://guides.rubyonrails.org/caching_with_rails.html中的一些提示,但资产仍然会重新下载..
编辑:我的 nginx 配置
upstream example_com {
server unix:/tmp/example_com.todo.sock fail_timeout=0;
}
server {
listen 80;
server_name example.com;
root /var/www/example.com/current/public;
try_files $uri/index.html $uri @example_com;
location @example_com {
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off;
proxy_pass http://example_com;
}
location ~ ^/assets/ {
expires 1y;
add_header Cache-Control public;
add_header ETag "";
break;
}
client_max_body_size 4G;
keepalive_timeout 5;
error_page 500 502 503 504 /500.html;
access_log /var/www/example_com/shared/log/access.log main;
error_log /var/www/example_com/shared/log/error.log info;
}
缓存头,从萤火虫得到这个:
Response Headers From Cache
Cache-Control max-age=31536000, public
Content-Encoding gzip
Content-Type application/x-javascript
Date Wed, 04 Jul 2012 09:45:51 GMT
Expires Thu, 04 Jul 2013 09:45:51 GMT
Last-Modified Wed, 04 Jul 2012 05:52:38 GMT
Server nginx/1.2.1
Vary Accept-Encoding