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聚类算法之凝聚层次聚类实例分析
Nov 20 Python
初探TensorFLow从文件读取图片的四种方式
Feb 06 Python
Python 内置函数进制转换的用法(十进制转二进制、八进制、十六进制)
Apr 30 Python
Python双向循环链表实现方法分析
Jul 30 Python
Python面向对象之反射/自省机制实例分析
Aug 24 Python
Python实现的特征提取操作示例
Dec 03 Python
学生信息管理系统Python面向对象版
Jan 30 Python
Python实现简单查找最长子串功能示例
Feb 26 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
Python进行特征提取的示例代码
Oct 15 Python
Python基于Socket实现简易多人聊天室的示例代码
Nov 29 Python
Python使用scapy模块发包收包
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下目前为目最全的CURL中文说明
2010/08/01 PHP
php魔术变量用法实例详解
2014/11/13 PHP
Thinkphp结合ajaxFileUpload实现异步图片传输示例
2017/03/13 PHP
laravel自定义分页效果
2017/07/23 PHP
Ubuntu上安装yaf扩展的方法
2018/01/29 PHP
thinkPHP框架整合tcpdf插件操作示例
2018/08/07 PHP
Laravel 对某一列进行筛选然后求和sum()的例子
2019/10/10 PHP
jQuery-Easyui 1.2 实现多层菜单效果的代码
2012/01/13 Javascript
做web开发 先学JavaScript
2014/12/12 Javascript
javascript中闭包(Closure)详解
2016/01/06 Javascript
基于JavaScript实现通用tab选项卡(通用性强)
2016/01/07 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
Angular 表单控件示例代码
2017/06/26 Javascript
JS实现获取汉字首字母拼音、全拼音及混拼音的方法
2017/11/14 Javascript
jquery实现左右轮播切换效果
2018/01/01 jQuery
jQuery基于Ajax实现读取XML数据功能示例
2018/05/31 jQuery
微信小程序自定义可滑动顶部TabBar选项卡实现页面切换功能示例
2019/05/14 Javascript
vue中使用element ui的弹窗与echarts之间的问题详解
2019/10/25 Javascript
浅谈vuex的基本用法和mapaction传值问题
2019/11/08 Javascript
微信小程序实现首页弹出广告
2020/12/03 Javascript
Python开发SQLite3数据库相关操作详解【连接,查询,插入,更新,删除,关闭等】
2017/07/27 Python
2018年Python值得关注的开源库、工具和开发者(总结篇)
2018/01/04 Python
Python for循环中的陷阱详解
2018/07/13 Python
用Python+OpenCV对比图像质量的几种方法
2019/07/15 Python
python中的&&及||的实现示例
2019/08/07 Python
pytorch 自定义数据集加载方法
2019/08/18 Python
详解css3中 text-fill-color属性
2019/07/08 HTML / CSS
Waterford加拿大官方网站:世界著名的水晶杯品牌
2016/11/01 全球购物
奢华时尚的独特视角:La Garçonne
2018/06/07 全球购物
北京鼎普科技股份有限公司软件测试面试题
2012/04/07 面试题
What is EJB
2016/07/22 面试题
电气个人求职信范文
2014/02/04 职场文书
护理专业学生职业生涯规划范文
2014/03/11 职场文书
军训拉歌口号
2014/06/13 职场文书
幼儿教师远程研修感悟
2015/11/18 职场文书
一文带你理解vue创建一个后台管理系统流程(Vue+Element)
2021/05/18 Vue.js