如何使用Flask资源为静态文件设置缓存



我在项目中使用了Flask资源来组合所有的js和css文件。

assets = Environment(app)
js = Bundle('js/jquery/jquery.js','js/owl.carousel.min.js',output='gen/packed.js')
assets.register('js_all', js)
css = Bundle('css/bootstrap.css','css/font-awesome.css','css/color.css',output='gen/packed.css')
assets.register('css_all', css)

现在我想设置静态文件的过期天数。我检查了文档中的URL过期部分。但我很困惑。我想设置30天为过期时间。我如何使用flask资产来实现这个目标?

没有办法直接对Flask资产执行此操作。它只是一个资源打包器,不控制最终文件的服务。

然而,我假设你是运行你的应用程序背后的web服务器,如Nginx或Apache(如果你不是-你应该)。

在配置中使用其中一个来设置过期时间很简单。

Nginx

location ~* .(?:ico|css|js|gif|jpe?g|png)$ {
    expires 30d;
    add_header Pragma public;
    add_header Cache-Control "public";
}
Apache >(摘自这个答案)
# enable the directives - assuming they're not enabled globally
ExpiresActive on
# send an Expires: header for each of these mimetypes (as defined by server)
ExpiresByType image/png "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
# css may change a bit sometimes, so define shorter expiration
ExpiresByType text/css "access plus 1 days"

最新更新