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 自动化表单提交实例代码
Jun 08 Python
理解python中生成器用法
Dec 20 Python
Python PyQt4实现QQ抽屉效果
Apr 20 Python
Python3之读取连接过的网络并定位的方法
Apr 22 Python
Python使用requests提交HTTP表单的方法
Dec 26 Python
django与vue的完美结合_实现前后端的分离开发之后在整合的方法
Aug 12 Python
Python sep参数使用方法详解
Feb 12 Python
在Python中通过threshold创建mask方式
Feb 19 Python
Python 实现网课实时监控自动签到、打卡功能
Mar 12 Python
Python Pygame实现俄罗斯方块
Feb 19 Python
python人工智能human learn绘图可创建机器学习模型
Nov 23 Python
Django + Taro 前后端分离项目实现企业微信登录功能
Apr 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中冒号、endif、endwhile、endfor使用介绍
2010/04/28 PHP
php实现四舍五入的方法小结
2015/03/03 PHP
PHP设计模式之装饰者模式代码实例
2015/05/11 PHP
Yii 使用intervention/image拓展实现图像处理功能
2019/06/22 PHP
javascript 动态参数判空操作
2008/12/22 Javascript
NodeJS 模块开发及发布详解分享
2012/03/07 NodeJs
javascript 获取iframe里页面中元素值的方法
2014/02/17 Javascript
Node.js 去掉种子(torrent)文件里的邪恶信息
2015/03/27 Javascript
深入理解JavaScript编程中的原型概念
2015/06/25 Javascript
jQuery基于ajax()使用serialize()提交form数据的方法
2015/12/08 Javascript
Js获取图片原始宽高的实现代码
2016/05/17 Javascript
bootstrap手风琴折叠示例代码分享
2017/05/22 Javascript
vue 如何添加全局函数或全局变量以及单页面的title设置总结
2017/06/01 Javascript
node使用Koa2搭建web项目的方法
2017/10/17 Javascript
详解js 创建对象的几种方法
2019/03/08 Javascript
vue 父组件给子组件传值子组件给父组件传值的实例代码
2019/04/15 Javascript
Java与Python两大幸存者谁更胜一筹呢
2018/04/12 Python
python实现类之间的方法互相调用
2018/04/29 Python
django模板结构优化的方法
2019/02/28 Python
Python全局变量与global关键字常见错误解决方案
2020/10/05 Python
Python3+Django get/post请求实现教程详解
2021/02/16 Python
使用CSS3的rem属性制作响应式页面布局的要点解析
2016/05/24 HTML / CSS
详解Html5微信支付爬坑之路
2018/07/24 HTML / CSS
Html5踩坑记之mandMobile使用小记
2020/04/02 HTML / CSS
真正的英国宝藏:Mappin & Webb
2019/05/05 全球购物
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
ddl,dml和dcl的含义
2016/05/08 面试题
环境科学专业个人求职的自我评价
2013/11/28 职场文书
县政府领导班子四风问题对照检查材料思想汇报
2014/09/26 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
python 统计代码耗时的几种方法分享
2021/04/02 Python
浅谈Python列表嵌套字典转化的问题
2021/04/07 Python
Python制作动态字符画的源码
2021/08/04 Python
python字符串拼接.join()和拆分.split()详解
2021/11/23 Python
Python实现对齐打印 format函数的用法
2022/04/28 Python
MySQL解决Navicat设置默认字符串时的报错问题
2022/06/16 MySQL