浏览器缓存烧瓶中的静态文件?

时间:2014-07-10 07:30:55

标签: python caching flask openshift

已经在python中阅读flask文档并构建了一个本地网站。

使用此工具here在openshift上部署的网站上进行了速度测试: -

分析报告说我的网站没有缓存静态资源。 谷歌搜索了我的所有价值后,我收集到: -

  • 它与标题有关。
  • 缓存副本保存在客户端计算机中,也保存在客户端和网站之间的服务器上。

我的问题

  • 我是否要在html部分中包含过期和标记?或者在HTTP标题部分?

  • 如果在HTTP标题部分中我该怎么做?

如果我遗漏了文档中的内容,请告诉我。

2 个答案:

答案 0 :(得分:5)

使用'SEND_FILE_MAX_AGE_DEFAULT'或查看webassests http://webassets.readthedocs.org/en/latest/

这里问类似的问题。 Flask static file Cache-Control

答案 1 :(得分:0)

我遇到了这个问题,无法在网上找到适合我的答案。

然后我意识到我的静态文件根本没有从Flask提供! Flask只生成我的HTML。静态文件由我的Web服务器直接提供(在我的情况下是Apache,你的可能是Nginx或其他东西)。

Apache的说明:

首先安装相关模块

sudo a2enmod expires
sudo a2enmod headers

然后将这样的内容添加到.htaccess文件中:

# Expire headers    
<ifModule mod_expires.c>
  ExpiresActive On
  ExpiresByType image/jpeg "access plus 1 month"
  ExpiresByType image/png "access plus 1 month"
  ExpiresByType image/gif "access plus 1 month"
  ExpiresByType text/css "access plus 1 month"
  ExpiresByType text/javascript "access plus 1 month"
  ExpiresByType application/javascript "access plus 1 month"
</ifModule>

# Cache-Control Headers
<ifModule mod_headers.c>

  <filesMatch "\.(ico|jpe?g|png|gif)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>

  <filesMatch "\.(css|js)$">
    Header set Cache-Control "max-age=2592000, public"
  </filesMatch>

</ifModule>
# END Cache-Control Headers

Apache配置修改 有关如何在Apache manual中配置它的更多详细信息。