Django 静态文件未更新

问题描述 投票:0回答:0

我在Windows本地做Django 4.1,修改后发现我的静态文件没有更新,连

http://127.0.0.1/static/app_name/styles/css_name.css
上显示的内容都是旧的CSS文件。开发快一年了突然出现这个问题

在setting.py中:

DEBUG = True
STATIC_URL = "static/"
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

我已经尝试过以下方法:

  1. 重装
    Ctrl+F5
  2. 清除浏览器缓存
  3. 重启/重启浏览器/服务器/计算机
  4. 在另一个端口上运行服务器
  5. 在隐身窗口中打开
  6. 使用另一台电脑进行测试
  7. 运行
    python manage.py collectstatic
    /
    python manage.py collectstatic --clear
    /
    python manage.py collectstatic --noinput --clear
    ,在这里我发现运行这个命令后,修改后的静态文件会变回原来未修改的版本。
  8. 加载静态文件时在末尾添加一个随机标签,
    /static/app_name/styles/css_name.css?v=aCtZoGSzObVTeNCAbWjPyLpyStrYek6A
  9. 在setting.py中添加
STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.ManifestStaticFilesStorage'
  1. 在urls.py中添加以下内容
if settings.DEBUG:
    urlpatterns += static(settings.STATIC_URL, view=cache_control(no_cache=True, must_revalidate=True)(serve))

以上所有方法都没有解决我的问题。

我看到有人建议重启

gunicorn
/
nginx
会有所帮助,但似乎它在 Linux 而不是 Windows 上。

可以是什么?也许 Django 在某处保存了一些旧的静态文件并每次都获取它们?

解决方案

非常感谢@jsanchezs 的评论。问题是当我运行

python manage.py collectstatic
它在应用程序文件夹之外创建了另一个文件夹并引用它。

所以我只是将 STATIC_ROOT 更改为

STATIC_ROOT = os.path.join(BASE_DIR, 'app_name' ,'static')

解决问题!非常感谢大家的帮助。

python django django-staticfiles django-static
© www.soinside.com 2019 - 2024. All rights reserved.