静态文件缓存
用户通过浏览器访问网站时,可以通过浏览器缓存静态文件,达到节省带宽和流量、加快网页响应的作用。
通过设置Http头中的Cache-Control和Expires, 可以设置浏览器缓存。
# nginx 配置方法1
location ~ ^/(static)/ {
access_log off;
expires 30d;
}
# nginx 配置方法2
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 365d;
}
开发问题
在网站开发中,静态文件缓存导致修改后静态文件无法及时刷新,可以在静态文件后追加时间戳,即每次都想服务器请求静态资源文件。
但时间戳将导致生产环境的缓存失效,所以可以根据环境区别是否加时间戳。
下面给出Django的伪代码实现:
<link rel="stylesheet" href="{{ '/style/test.css'|file_stamp }}">
def file_stamp(value, arg=None):
if PRODUCTION == False:
return "%s?t=%s" % (value, time())
else:
return "%s?v=%s" % (value, get_web_version())