【问题标题】:Django static files suddenly disappeared 404 errordjango静态文件突然消失404错误
【发布时间】:2021-01-31 08:15:43
【问题描述】:

我有一个奇怪的问题,但有人知道发生了什么吗?

我已经制作了 Django 应用程序,一切正常,然后重新启动服务器并使用命令再次启动 Django:

然后没有加载静态文件(CSS、图像...)...我收到 404 错误。 发生了什么??? 请帮助...也许我必须以另一种方式运行它?我真的不知道发生了什么,因为一切正常,然后在我再次开始之后一切都出错了..

nohup python manage.py runserver 0.0.0.0:8000 &

这是我用来再次启动django(服务器)的命令..

【问题讨论】:

  • 你有没有从DEBUG=True变成Debug=False
  • 几个月前我做过,但效果很好......
  • 谢谢老兄,我再次输入 DEBUG = TRUE 并且它起作用了...非常感谢..
  • 你能解释一下发生了什么吗,因为它工作正常,什么是 DEBUG = TRUE...
  • 简而言之,DEBUG=True 将为您处理静态文件,因为它意味着开发工作。 DEBUG=False 用于生产,但您需要处理自己的静态资产。 docs.djangoproject.com/en/3.1/howto/static-files/deployment

标签: django


【解决方案1】:

首先,使用python manage.py runserver
然后,检查DEBUGTrue 还是False。确保它是Debug=True
最后,看看您是否不小心删除了任何 static 文件。

【讨论】:

  • DEBUG = TRUE 我改变了它。但我有疑问为什么当 DEBUG = FALSE 时它工作得很好......而 DEBUG = TRUE 重要的是什么......我是 django 的新手,对不起......谢谢。
  • 所以,DEBUG=True 是您在测试而不是生产的时候。如果将DEBUG设置为false,则需要在Allowed Hosts中添加允许的主机。我不知道为什么静态文件会消失,为此,您应该自己进行一些研究。看here。不管怎样,我很高兴能帮上忙!
  • 对不起,但我不明白.. 我必须在允许的主机中添加什么?
【解决方案2】:

Serve Files During Development

如果您使用django.contrib.staticfilesrunserver 将提供静态文件 当 DEBUG 设置为 True 时自动进行。

您可以检查django/staticfile/views.py 以查看为静态文件提供服务的view。如果是not settings.DEBUG,则为raise Http404

def serve(request, path, insecure=False, **kwargs):
    """
    Serve static files below a given point in the directory structure or
    from locations inferred from the staticfiles finders.
    To use, put a URL pattern such as::
        from django.contrib.staticfiles import views
        path('', views.serve)
    in your URLconf.
    It uses the django.views.static.serve() view to serve the found files.
    """
    if not settings.DEBUG and not insecure:
        raise Http404
    ...
    
    return static.serve(request, path, document_root=document_root, **kwargs)

【讨论】:

    猜你喜欢
    • 2018-05-24
    • 2021-02-28
    • 2016-04-08
    • 2019-01-23
    • 2021-11-25
    • 2018-07-21
    • 2020-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多