You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Flask render_template返回旧HTML页面问题求助

解决Flask模板更新后仍显示旧内容的问题

问题根源是Flask默认会缓存模板文件以提升请求处理性能,即便你更新了磁盘上的.html文件,Flask依然会返回缓存中的旧版本——这也是浏览器刷新无效的核心原因:缓存不在客户端,而在服务器端。

以下是不同场景的解决方案:

开发环境

  • 开启调试模式:启动Flask应用时添加debug=True,调试模式会自动监听模板文件变化并重载,无需手动处理缓存:
    if __name__ == '__main__':
        app.run(debug=True)
    
  • 手动开启模板自动重载:如果不想启用调试模式,可单独配置TEMPLATES_AUTO_RELOAD参数:
    app = Flask(__name__)
    app.config['TEMPLATES_AUTO_RELOAD'] = True
    

生产环境

生产环境不建议开启调试模式,可通过清除模板缓存获取最新内容:

  • 在路由中清除指定模板的缓存:
    @app.route('/html_file')
    def show_html_file():
        # 移除指定模板的缓存条目
        app.jinja_env.cache.pop('html_file.html', None)
        return render_template('html_file.html')
    
  • 若需清除所有模板缓存,可替换为app.jinja_env.cache.clear(),但频繁清空可能影响性能,按需使用即可。

内容的提问来源于stack exchange,提问作者Roman Velichkin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 01:44:51