开发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
相关产品推荐
相关产品推荐

