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

开发Django Web应用遇CSS修改不生效问题,求解决方案

解决Django中CSS修改后不生效的问题
  • 临时调试:禁用浏览器缓存
    按F12打开开发者工具,切换到Network标签,勾选「Disable cache」选项,刷新页面就能看到最新CSS效果。这是最快的临时解决办法,不用改任何代码。

  • 长期方案:给静态文件加版本号
    修改模板里的CSS引用,手动加版本参数:

    {% load static %}
    <link rel="stylesheet" href="{% static 'css/your-style.css' %}?v=1.0">
    

    每次改完CSS,把v=1.0改成v=1.1这类新值,浏览器就会放弃缓存,加载新文件。嫌手动改麻烦的话,可以在settings.py里定义一个全局版本变量,比如:

    STATIC_VERSION = '1.0'
    

    然后模板里用{{ STATIC_VERSION }}代替硬编码的版本号,改版本时只需要改settings里的变量就行。

  • 生产环境最优解:用ManifestStaticFilesStorage
    在settings.py里配置静态文件存储类:

    STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
    

    运行python manage.py collectstatic后,Django会自动给每个静态文件生成带哈希值的文件名(比如your-style.7a3b2c.css),只要文件内容变了,哈希就变,文件名也跟着变,彻底杜绝缓存问题。注意这个只适合生产环境,开发环境用的话每次改CSS都要跑collectstatic,效率太低。

  • 开发环境排查缓存设置
    确保settings.py里DEBUG = True,同时注释掉缓存相关的中间件:

    # MIDDLEWARE = [
    #     'django.middleware.cache.UpdateCacheMiddleware',
    #     'django.middleware.cache.FetchFromCacheMiddleware',
    # ]
    

    开发模式下Django默认不会缓存静态文件,但浏览器可能会自作主张,所以还是配合前面的浏览器禁用缓存方法更稳妥。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 17:44:56