如何解决flask修改静态资源后缓存文件不能及时更改问题


Posted in Python onAugust 02, 2020

run.py

from flask import url_for

@app.context_processor # 上下文渲染器,给所有html添加渲染参数
def inject_url():
  data = {
    "url_for": dated_url_for,
  }
  return data

def dated_url_for(endpoint, **values):
	filename = None
  if endpoint == 'static':
    filename = values.get('filename', None)
  if filename:
    file_path = os.path.join(app.root_path, endpoint, filename)
    values['v'] = int(os.stat(file_path).st_mtime) # 取文件最后修改时间的时间戳,文件不更新,则可用缓存
    return url_for(endpoint, **values)

html文件

<link rel="stylesheet" href="{{ url_for('static', filename='css/base.css') }}" rel="external nofollow" >

这里重写了url_for方法,在后面加了?v=xxx,这里的xxx是该文件最后修改时间的时间戳。修改文件后,参数v发生变化,浏览器去服务端请求新的静态资源文件。

内容扩展:

flask踩过的坑

希望大家把遇到的问题都分享下,减少走弯路。

1.router不能统一管理,我采用Django模式把所有的路由都配置在urls文件中

2.router不能统一加载,没有找到像spring包扫描类似的工具类

3.TemplateNotFound静态资源找不到

4.debug模式 静态资源修改不生效,需要重启服务器

if name == ‘main‘:
#静态资源修改不需要重启
app.jinja_env.auto_reload = True
app.run(debug=True)

5.Template 引用静态资源 url_for

以上就是如何解决flask修改静态资源后缓存文件不能及时更改问题的详细内容,更多关于flask修改静态资源后缓存文件不能及时更改的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python zip()函数用法实例分析
Mar 17 Python
python 将print输出的内容保存到txt文件中
Jul 17 Python
Python实现字典排序、按照list中字典的某个key排序的方法示例
Dec 18 Python
对python中的six.moves模块的下载函数urlretrieve详解
Dec 19 Python
python 使用正则表达式按照多个空格分割字符的实例
Dec 20 Python
Python List列表对象内置方法实例详解
Oct 22 Python
python3实现单目标粒子群算法
Nov 14 Python
Python猜数字算法题详解
Mar 01 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
keras中的backend.clip用法
May 22 Python
利用python汇总统计多张Excel
Sep 22 Python
python实现批量移动文件
Apr 05 Python
Flask缓存静态文件的具体方法
Aug 02 #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
You might like
PHP中使用循环实现的金字塔图形
2014/11/08 PHP
smarty自定义函数htmlcheckboxes用法实例
2015/01/22 PHP
yum命令安装php7和相关扩展
2016/07/04 PHP
sina的lightbox效果。
2007/01/09 Javascript
mapper--图片热点区域高亮组件官方站点
2007/12/22 Javascript
javascript StringBuilder类实现
2008/12/22 Javascript
JavaScript 学习笔记 Black.Caffeine 09.11.28
2009/11/30 Javascript
写给想学习Javascript的朋友一点学习经验小结
2010/11/23 Javascript
javascript通过class来获取元素实现代码
2013/02/20 Javascript
浅谈js的setInterval事件
2014/12/05 Javascript
基于JavaScript实现弹出框效果
2016/02/19 Javascript
Jquery zTree 树控件异步加载操作
2016/02/25 Javascript
jQuery实现的表格展开伸缩效果实例
2016/09/07 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
JavaScript实现垂直滚动条效果
2017/01/18 Javascript
微信小程序中input标签详解及简单实例
2017/05/18 Javascript
Dropify.js图片宽高自适应的方法
2017/11/27 Javascript
利用Javascript开发一个二维周视图日历
2017/12/14 Javascript
jQuery实现的上传图片本地预览效果简单示例
2018/03/29 jQuery
基于mpvue小程序使用echarts画折线图的方法示例
2019/04/24 Javascript
Django实现图片文字同时提交的方法
2015/05/26 Python
Python中Django框架利用url来控制登录的方法
2015/07/25 Python
有趣的python小程序分享
2017/12/05 Python
python实现PID算法及测试的例子
2019/08/08 Python
django 使用 PIL 压缩图片的例子
2019/08/16 Python
Python FFT合成波形的实例
2019/12/04 Python
爬虫代理池Python3WebSpider源代码测试过程解析
2019/12/20 Python
Python线程条件变量Condition原理解析
2020/01/20 Python
CSS3教程(1):什么是CSS3
2009/04/02 HTML / CSS
机械制造专业个人的自我评价
2013/12/28 职场文书
十佳标兵事迹材料
2014/08/18 职场文书
生物工程专业求职信
2014/09/03 职场文书
员工离职感谢信
2015/01/22 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
2016年中学植树节活动总结
2016/03/16 职场文书