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

如何更新asset文件夹中的图片?解决替换后仍显示旧图问题

解决Dash中assets图片更新后仍显示旧图的问题

出现这个问题的核心原因是浏览器缓存了旧的图片资源,即使你替换了本地asset文件夹里的图片,浏览器会优先加载缓存中的旧文件,重启电脑并不会清除浏览器的静态资源缓存,所以界面还是显示旧图。

以下是几种可行的解决方法:

  • 给图片路径加随机参数/版本号
    修改回调里的图片路径,在文件名后添加时间戳或随机字符串,让浏览器认为是新资源,从而绕过缓存。示例代码:

    import time
    
    def add_image():
        # 用当前时间戳作为参数,确保每次路径都不同
        image_well=f'assets/img.PNG?{int(time.time())}'
        style_image={'height':'300px','width': '100%','padding-left':'6%', 'padding-right':'5%'}  
        return image_well,style_image
    
  • 强制浏览器刷新缓存
    手动触发强制刷新:Windows/Linux按Ctrl+F5,Mac按Cmd+Shift+R,这会让浏览器跳过缓存,重新加载最新的图片文件。

  • 确保回调能触发更新
    你的当前回调没有设置Input触发条件,可能不会主动执行更新。可以添加一个触发源(比如按钮点击),同时结合上面的缓存规避方法,示例:

    @app.callback(
        [Output("html-img", 'src'), Output("html-img-div", 'style')],
        Input("refresh-image-btn", 'n_clicks'),  # 新增一个按钮作为触发源
        prevent_initial_call=False
    )
    def add_image(n_clicks):
        import time
        image_well=f'assets/img.PNG?{int(time.time())}'
        style_image={'height':'300px','width': '100%','padding-left':'6%', 'padding-right':'5%'}  
        return image_well,style_image
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 06:10:16