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将unicode转为str的方法
Jun 21 Python
python技能之数据导出excel的实例代码
Aug 11 Python
Python数据结构之顺序表的实现代码示例
Nov 15 Python
Pipenv一键搭建python虚拟环境的方法
May 22 Python
BP神经网络原理及Python实现代码
Dec 18 Python
python3射线法判断点是否在多边形内
Jun 28 Python
python绘制动态曲线教程
Feb 24 Python
浅谈Python线程的同步互斥与死锁
Mar 22 Python
详解python tcp编程
Aug 24 Python
python实现感知机模型的示例
Sep 30 Python
Django基于Models定制Admin后台实现过程解析
Nov 11 Python
python开发实时可视化仪表盘的示例
May 07 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中文本数据翻页(留言本翻页)
2006/10/09 PHP
JavaScript创建命名空间的5种写法
2014/06/24 PHP
ThinkPHP连接数据库的方式汇总
2014/12/05 PHP
php中数据库连接方式pdo和mysqli对比分析
2015/02/25 PHP
Laravel 微信小程序后端实现用户登录的示例代码
2019/11/26 PHP
制作特殊字的脚本
2006/06/26 Javascript
JS的递增/递减运算符和带操作的赋值运算符的等价式
2007/12/08 Javascript
很多人都是用下面的js刷新站IP和PV
2008/09/05 Javascript
使用新的消息弹出框blackbirdjs
2008/10/16 Javascript
js getElementsByTagName的简写方式
2010/06/27 Javascript
jquery中ajax使用error调试错误的方法
2015/02/08 Javascript
分析js闭包引起的事件注册问题
2016/03/29 Javascript
jQuery中on绑定事件后引发的事件冒泡问题如何解决
2016/05/25 Javascript
深入浅析JavaScript的API设计原则
2016/06/14 Javascript
JS对HTML表格进行增删改操作
2016/08/22 Javascript
JS获取短信验证码倒计时的实现代码
2017/05/22 Javascript
Vue2.0父组件与子组件之间的事件发射与接收实例代码
2017/09/19 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
详解Angular中通过$location获取地址栏的参数
2018/08/02 Javascript
js监听html页面的上下滚动事件方法
2018/09/11 Javascript
js replace替换字符串同时替换多个方法
2018/11/27 Javascript
vue-router跳转时打开新页面的两种方法
2019/07/29 Javascript
浅谈Python中的zip()与*zip()函数详解
2018/02/24 Python
python构建深度神经网络(DNN)
2018/03/10 Python
python实现zabbix发送短信脚本
2018/09/17 Python
pytorch实现对输入超过三通道的数据进行训练
2020/01/15 Python
解决Jupyter无法导入已安装的 module问题
2020/04/17 Python
Python插件机制实现详解
2020/05/04 Python
澳大利亚香水在线商店:City Perfume
2020/09/02 全球购物
三年级评语大全
2014/04/23 职场文书
中职招生先进个人材料
2014/08/31 职场文书
个人查摆问题自查报告
2014/10/16 职场文书
《丑小鸭》教学反思
2016/02/19 职场文书
MySQL Router实现MySQL的读写分离的方法
2021/05/27 MySQL
Python 数据可视化之Matplotlib详解
2021/11/02 Python
深入浅出讲解Java8函数式编程
2022/01/18 Java/Android