Flask缓存静态文件的具体方法


Posted in Python onAugust 02, 2020

大家好,今天才发现很多学习Flask的小伙伴都有这么一个问题,清理缓存好麻烦啊,今天就教大家怎么解决。

大家在使用Flask静态文件的时候,每次更新,发现CSS或是Js或者其他的文件不会更新。

这是因为浏览器的缓存问题。

普遍大家是这几步解决办法。

·清理浏览器缓存;

·设置浏览器不缓存;

·也有以下这么写的:

@app.context_processor
def override_url_for():
    return dict(url_for=dated_url_for)
def dated_url_for(endpoint, **values):
    if endpoint == 'static':
        filename = values.get('filename', None)
    if filename:
        file_path = os.path.join(app.root_path, endpoint, filename)
        values['q'] = int(os.stat(file_path).st_mtime)
        return url_for(endpoint, **values)

如果是我,我不会这么做,效率很低。

Flask缓存静态文件的具体方法

这是  Flask的 config 的源码,里面可以看到,有设置缓存最大时间

SEND_FILE_MAX_AGE_DEFAULT 可以看到,它是一个 temedelta 的值

我们去更改配置。

Flask缓存静态文件的具体方法

第2行: 我们引入了datetime的timedelta对象

第6行: 我们配置缓存最大时间

这样就解决了缓存问题,不用去写多余的代码,不用去清理浏览器的缓存。

内容扩展:

flask修改静态资源后缓存文件不能及时更改问题解决

加上一句话。下图圈起来的,表示只缓存一秒,相当于不缓存了。

Flask缓存静态文件的具体方法

以上就是Flask缓存静态文件的具体方法的详细内容,更多关于Flask如何缓存静态文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python的函数嵌套的使用方法
Jan 24 Python
简介Django框架中可使用的各类缓存
Jul 23 Python
Python实战小程序利用matplotlib模块画图代码分享
Dec 09 Python
windows下cx_Freeze生成Python可执行程序的详细步骤
Oct 09 Python
python 多线程将大文件分开下载后在合并的实例
Nov 09 Python
Python集中化管理平台Ansible介绍与YAML简介
Jun 12 Python
Python拆分大型CSV文件代码实例
Oct 07 Python
python装饰器使用实例详解
Dec 14 Python
关于Python turtle库使用时坐标的确定方法
Mar 19 Python
使用pandas库对csv文件进行筛选保存
May 25 Python
python 线程的五个状态
Sep 22 Python
Selenium Webdriver元素定位的八种常用方式(小结)
Jan 13 Python
Flask中sqlalchemy模块的实例用法
Aug 02 #Python
python线程里哪种模块比较适合
Aug 02 #Python
python缩进长度是否统一
Aug 02 #Python
Python接收手机短信的代码整理
Aug 02 #Python
Python改变对象的字符串显示的方法
Aug 01 #Python
Python 如何定义匿名或内联函数
Aug 01 #Python
Python sqlalchemy时间戳及密码管理实现代码详解
Aug 01 #Python
You might like
php 一元分词算法
2009/11/30 PHP
PHP和Mysql中转UTF8编码问题汇总
2015/10/10 PHP
PHP二维数组去重算法
2016/12/17 PHP
简单实现php上传文件功能
2017/09/21 PHP
js操作css属性实现div层展开关闭效果的方法
2015/05/11 Javascript
jQuery解决浏览器兼容性问题案例分析
2016/04/15 Javascript
AngularJS基础 ng-keydown 指令简单示例
2016/08/02 Javascript
vue.js入门教程之计算属性
2016/09/01 Javascript
AngularJS学习第二篇 AngularJS依赖注入
2017/02/13 Javascript
Vue.js 2.0 移动端拍照压缩图片上传预览功能
2017/03/06 Javascript
微信小程序开发之toast提示插件使用示例
2017/06/08 Javascript
JS实现简单的选择题测评系统代码思路详解(demo)
2017/09/03 Javascript
关于jquery layui弹出层的使用方法
2018/04/21 jQuery
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
2018/08/29 Javascript
vue同步父子组件和异步父子组件的生命周期顺序问题
2018/10/07 Javascript
javascript匿名函数中的'return function()'作用
2018/10/15 Javascript
JS localStorage存储对象,sessionStorage存储数组对象操作示例
2020/02/15 Javascript
Vue.js实现立体计算器
2020/02/22 Javascript
[03:54]DOTA2英雄梦之声_第06期_昆卡
2014/06/23 DOTA
[38:32]DOTA2上海特级锦标赛A组资格赛#2 Secret VS EHOME第二局
2016/02/26 DOTA
详解python并发获取snmp信息及性能测试
2017/03/27 Python
Django框架模板介绍
2019/01/15 Python
Django中使用 Closure Table 储存无限分级数据
2019/06/06 Python
调试Django时打印SQL语句的日志代码实例
2019/09/12 Python
pytorch torch.expand和torch.repeat的区别详解
2019/11/05 Python
利用python实现PSO算法优化二元函数
2019/11/13 Python
python+opencv实现移动侦测(帧差法)
2020/03/20 Python
Idea安装python显示无SDK问题解决方案
2020/08/12 Python
戴尔加拿大官网:Dell加拿大
2016/09/17 全球购物
亿阳信通股份有限公司C#笔试题
2016/12/06 面试题
经理职责范文
2013/11/08 职场文书
新年寄语大全
2014/04/12 职场文书
博士毕业生自我鉴定范文
2014/04/13 职场文书
公司承诺书范文
2014/05/19 职场文书
建设工程授权委托书
2014/09/22 职场文书
酒店工程部经理岗位职责
2015/04/09 职场文书