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编写一个简单的tic-tac-toe游戏的教程
Apr 16 Python
python使用range函数计算一组数和的方法
May 07 Python
利用Python实现Windows定时关机功能
Mar 21 Python
python中Switch/Case实现的示例代码
Nov 09 Python
Python字典的核心底层原理讲解
Jan 24 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
python实现杨氏矩阵查找
Mar 02 Python
python命名空间(namespace)简单介绍
Aug 10 Python
Tensorflow安装问题: Could not find a version that satisfies the requirement tensorflow
Apr 20 Python
使用SQLAlchemy操作数据库表过程解析
Jun 10 Python
深入浅析Python代码规范性检测
Jul 31 Python
Python高并发和多线程有什么关系
Nov 14 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数字转汉字代码(算法)
2011/10/08 PHP
PHP检测移动设备类mobile detection使用实例
2014/04/14 PHP
YII Framework框架教程之安全方案详解
2016/03/14 PHP
PHP自定义错误处理的方法分析
2018/12/19 PHP
javascript面向对象包装类Class封装类库剖析
2013/01/24 Javascript
js获取select默认选中的Option并不是当前选中值
2014/05/07 Javascript
AngularJS中取消对HTML片段转义的方法例子
2015/01/04 Javascript
使用jQuery管理选择结果
2015/01/20 Javascript
JavaScript中神奇的call()方法
2015/03/12 Javascript
JavaScript中模拟实现jsonp
2015/06/19 Javascript
JavaScript操作HTML DOM节点的基础教程
2016/03/11 Javascript
基于js实现checkbox批量选中操作
2016/11/22 Javascript
vue.js前后端数据交互之提交数据操作详解
2018/04/24 Javascript
vue项目上传Github预览的实现示例
2018/11/06 Javascript
[原创]微信小程序获取网络类型的方法示例
2019/03/01 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
layUI实现前端分页和后端分页
2019/07/27 Javascript
Vue中通过Vue.extend动态创建实例的方法
2019/08/13 Javascript
使用Python下载Bing图片(代码)
2013/11/07 Python
python基础教程之自定义函数介绍
2014/08/29 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
python使用TensorFlow进行图像处理的方法
2018/02/28 Python
python面向对象 反射原理解析
2019/08/12 Python
Python函数参数类型及排序原理总结
2019/12/19 Python
简单了解pytest测试框架setup和tearDown
2020/04/14 Python
Django多层嵌套ManyToMany字段ORM操作详解
2020/05/19 Python
Python3 pywin32模块安装的详细步骤
2020/05/26 Python
如何在Win10系统使用Python3连接Hive
2020/10/15 Python
世界上最好的帽子:Tilley
2016/11/27 全球购物
外贸业务员求职信范文
2013/12/12 职场文书
幼儿园的门卫岗位职责
2014/04/10 职场文书
群众路线学习笔记范文
2014/11/06 职场文书
2014年店长工作总结
2014/11/17 职场文书
传单、海报早OUT了,另类传单营销方案送给你!
2019/07/15 职场文书
Java Kafka 消费积压监控的示例代码
2021/07/01 Java/Android
一级电子管军用接收机测评
2022/04/05 无线电