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的Flask框架中实现单元测试的教程
Apr 20 Python
实例讲解Python中global语句下全局变量的值的修改
Jun 16 Python
python实现将一个数组逆序输出的方法
Jun 25 Python
pytorch 调整某一维度数据顺序的方法
Dec 08 Python
python 梯度法求解函数极值的实例
Jul 10 Python
python2和python3应该学哪个(python3.6与python3.7的选择)
Oct 01 Python
numpy 返回函数的上三角矩阵实例
Nov 25 Python
Python正则表达式急速入门(小结)
Dec 16 Python
实现Python与STM32通信方式
Dec 18 Python
python IDLE添加行号显示教程
Apr 25 Python
python seaborn heatmap可视化相关性矩阵实例
Jun 03 Python
python palywright库基本使用
Jan 21 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面向对象分析设计的61条军规小结
2010/07/17 PHP
Zend Framework基于Command命令行建立ZF项目的方法
2017/02/18 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
使用jquery给input和textarea设定ie中的focus
2008/05/29 Javascript
JQuery 文本框使用小结
2010/05/22 Javascript
js 获取元素下面所有li的两种方法
2014/04/14 Javascript
javascript定义变量时有var和没有var的区别探讨
2014/07/21 Javascript
js获取微信版本号的方法
2015/05/12 Javascript
JS+CSS实现自动切换的网页滑动门菜单效果代码
2015/09/14 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
jQuery插件实现带圆点的焦点图片轮播切换
2016/01/18 Javascript
JavaScript中用let语句声明作用域的用法讲解
2016/05/20 Javascript
js防阻塞加载的实现方法
2016/09/09 Javascript
Ionic 2 实现列表滑动删除按钮的方法
2017/01/22 Javascript
javascript 显示全局变量与隐式全局变量的区别
2017/02/09 Javascript
微信小程序商城项目之淘宝分类入口(2)
2017/04/17 Javascript
OpenLayers3实现鼠标移动显示坐标
2020/09/25 Javascript
探究Python的Tornado框架对子域名和泛域名的支持
2015/05/02 Python
python range()函数取反序遍历sequence的方法
2018/06/25 Python
Python实现直方图均衡基本原理解析
2019/08/08 Python
Pytorch实现的手写数字mnist识别功能完整示例
2019/12/13 Python
Python tkinter常用操作代码实例
2020/01/03 Python
利用Tensorboard绘制网络识别准确率和loss曲线实例
2020/02/15 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
Python基于类路径字符串获取静态属性
2020/03/12 Python
Pycharm Git 设置方法
2020/09/15 Python
HTML5 canvas基本绘图之绘制曲线
2016/06/27 HTML / CSS
什么是事务?为什么需要事务?
2012/01/09 面试题
计算机应用专业学生的自我评价分享
2013/11/03 职场文书
廉洁教育学习材料
2014/05/19 职场文书
生日庆典策划方案
2014/06/02 职场文书
党政领导班子民主生活会整改措施
2014/09/18 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
话题作文之关于呼唤
2019/11/29 职场文书
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
mysql配置SSL证书登录的实现
2021/09/04 MySQL