【问题标题】:Django Admin Styling corruptedDjango 管理样式损坏
【发布时间】:2020-08-04 11:25:00
【问题描述】:

我最近对我的 django 站点进行了一些更改,其中一项重大更改是从 Django 2.2 升级到 3.1。现在我的管理网站样式都搞砸了。我不知道出了什么问题或如何解决。任何指针将不胜感激! 查看更新后的外观图像...... admin 的主页看起来不错,但是当我单击其中一个模型查看时,格式肯定不正确。 另外,我在网站上的一些不是全部的图片都说 404 not found ...

【问题讨论】:

  • 你不能仅仅通过更新 django 版本来升级。 django 不支持向后兼容。检查 django 教程。
  • 是的,你可以,我关注了这个docs.djangoproject.com/en/3.0/howto/upgrade-version
  • 这个确切的问题是否发生在多个环境中。从 django 2.2+ 升级到 3.2。我无法使用 firefox、chrome、edge、epiphany 在本地(ubuntu 20.04、virtuabox win10)重现该问题。我无法在我们的评论应用、登台或生产环境中重现该问题。受此影响的人在该国的另一个地方。我们禁用了所有扩展程序,在带有私人窗口的干净浏览器中打开,隐身,没有缓存的硬重新加载,单独的计算机......作品。然而,他们仍然面临同样的问题。也许是 CDN 托管问题?
  • @MattG 你能找到答案吗?
  • @jmunsch 我尝试了一些东西并认为我得到了改进但没有完全修复 - 我最终开始了一个新的 django 项目,该项目为管理部分创建了新的 css,然后我将其复制并粘贴到然后我的旧项目确实收集静态。

标签: django


【解决方案1】:

我遇到了同样的问题,首先我认为这是一个缓存问题,但事实并非如此。 我检查了页面源代码,发现一个 css 文件应用到了我的驱动器上甚至不存在的页面。

在我的情况下,文件是: static/admin/css/nav_sidebar.css

所以我在 static/admin/css 中创建了一个名为 nav_sidebar.css 的新文件, 然后复制粘贴我从页面源获得的代码和 添加了“显示:无;”在#nav-sidebar 部分(line:34)和[dir="rtl"] #nav-sidebar 部分(在我的情况下为line:45)。

您可以使用 Google Chrome 的检查工具在此处找到原始代码。 Where to find the code

【讨论】:

    【解决方案2】:

    您的浏览器似乎正在缓存旧版本的 CSS / JS,您可以清除缓存并重新加载。在 chrome 中使用 ctrl + shift + r 重新加载。

    【讨论】:

    • ctrl + F5 为我工作。顺便说一句,感谢您清除缓存的提示。
    【解决方案3】:

    在将 django 从 v3.0 升级到 v3.1 后,我遇到了同样的问题。我运行 python manage.py collectstatic 来更新解决了我的问题的 css

    【讨论】:

    • 我按照您的建议运行了 python manage.py collectstatic 但问题一直存在,直到我清除了浏览器缓存。谢谢!
    【解决方案4】:

    我认为这里的其他答案是必要的,但我会再补充一个:您可能必须破坏服务器本身的缓存。在我们的示例中,nginx 被配置为为我们的静态文件提供非常长的缓存,因此我们只需重置它以使更改生效。

    【讨论】:

    • 你将如何清除 nginx 中的缓存?我现在遇到了这个问题,这个*.com/questions/67709529/…
    • 我认为我们实际上只是重新启动了 nginx,但我记得这很有压力。
    • 你还记得你是怎么做的吗?我完成了上述所有步骤,但它无法做任何事情
    • 对不起,我真的不确定。
    • 您好,我已经尝试添加赏金,如果这可能会引起一些关注。如果您可能需要一些信息,我还可以提供更多详细信息。