• flask修改静态文件后缓存文件不能及时更新的解决办法


    摘要

      博主在使用flask进行web开发时,需要将图片上传并展示,对于上传的图片都进行重命名并保存在static文件夹下,然而发现多次上传后展示的图片还是原来的图片,尽管后端显示图片已更新成最新上传的图片,前端还是展示原来的图片,本篇将提供解决方法。

    解决办法

      博主在网络上找到两类解决办法,其中一类是修改静态文件的缓存时间为1秒,然而亲测无效。

    # 设置静态文件缓存过期时间
    app.send_file_max_age_default = timedelta(seconds=1)
    

      另一类是通过重写url_for的方法,注意前端也要通过url_for访问静态资源,亲测有效。

    # url_for,修改静态文件(js,css,image)时,网页同步修改
    @app.context_processor
    def override_url_for():
        return dict(url_for=dated_url_for)
    
    
    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)
    

    以上。

  • 相关阅读:
    性能分析之路-------各指标代表意思以及分析
    selenium python 定位一组对象
    python 操作word文档
    nmon的安装以及使用
    nginx的监控配置
    selenium 一个简单的流程
    Fiddler手机抓包设置
    urllib、urllib2、urllib3区别和使用
    mysql数据库改名的方法
    Python之pymysql
  • 原文地址:https://www.cnblogs.com/marvin-wen/p/14443070.html
Copyright © 2020-2023  润新知