利用浏览器缓存外部文件

Man*_*noj 12 browser-cache google-maps-api-3 pagespeed node.js express

我使用google pagespeed Insights来测试我的nodejs网站的性能.对于一些外部文件,它说利用浏览器缓存,但我不知道如何做到这一点?

利用浏览器缓存

在静态资源的HTTP标头中设置到期日期或最长期限会指示浏览器从本地磁盘而不是通过网络加载以前下载的资源.利用浏览器缓存以获取以下可缓存资源:

http://maps.googleapis.com/ ... kwPPoBErK _-- SlHZI28k6jjYLyU&sensor = false(30分钟)

http://www.google-analytics.com/analytics.js(2小时)

有人请帮帮我.

rud*_*lfv 5

一种解决方案是反向代理Google资源.然后,您可以添加Cache-Control和其他缓存标头.如果您正在使用Apache,则可以在httpd.conf文件中完成以下操作:

ProxyRemote http://www.google-analytics.com http://yourinternalproxy:yourport

<Location /analytics.js>
  ProxyPass http://www.google-analytics.com/analytics.js
  ProxyPassReverse http://www.google-analytics.com/analytics.js
  Header set Cache-Control "max-age=86400"
</Location>
Run Code Online (Sandbox Code Playgroud)

这样做的缺点是:

  • 您将通过服务器汇集大量额外流量.
  • 很明显,谷歌所做的更新将需要更长的时间才能显示给您网站的用户.

  • 还有一个缺点是,如果用户在访问不同的网站后已经缓存了分析(这几乎可以肯定,考虑到它有多受欢迎),你就无法利用它已经在缓存中的事实. (2认同)