【问题标题】:404 error in django static filesdjango静态文件中的404错误
【发布时间】:2019-01-23 21:29:34
【问题描述】:

我是 django 的新手。我试图在我的演示项目中添加一些引导程序。但我只是得到 404 not found 错误。我在网上搜索了很多答案,但没有帮助我解决我的愚蠢问题。

【问题讨论】:

  • 不要发布这个截图,因为它们很难阅读。

标签: python django python-3.x django-templates django-views


【解决方案1】:

首先,静态根是用于​​生产的。如果您希望 Django 在您的 django 项目的顶层(manage.py 所在的位置)上获取模板,您需要添加到 settings.py:

STATICFILES_DIRS = [ os.path.join(BASE_DIR, "静态"), ]

STATICFILES_DIRS 告诉 django 在您添加的路径中查找模板。例如,我希望 django 在 djang-folder/static 和 django-folder/other 中查找模板,staticfile_dirs 应该如下所示:

STATICFILES_DIRS = [ os.path.join(BASE_DIR, "静态"), os.path.join(BASE_DIR, "其他"), ]

这里有更好的解释:https://django.readthedocs.io/en/latest/howto/static-files/

在这里:https://www.youtube.com/watch?v=5yjInLsy6P8


还有一件事:在第二个屏幕截图的第一行取消注释 {% load static %} ,否则它不会拾取任何静态文件。

【讨论】:

    【解决方案2】:

    您需要为本地项目包含 STATIC_DIRS。

    您可以在Django documentation 中找到这些设置。以下是我自己对文档的定义和引用:

    • MEDIA_ROOT 是使用FileField 上传的文件所在的文件夹。

      将包含user-uploaded files 的目录的绝对文件系统路径。

    • STATIC_ROOT是使用manage.py collectstatic后会存放静态文件的文件夹

      collectstatic 将收集用于部署的静态文件的目录的绝对路径。

      如果staticfiles contrib 应用程序已启用(默认),collectstatic 管理命令会将静态文件收集到此目录中。有关使用的更多详细信息,请参阅管理静态文件的操作指南。

    • STATICFILES_DIRS 是 Django 将在其中搜索除每个已安装应用程序的 static 文件夹之外的其他静态文件的文件夹列表。

      如果启用了FileSystemFinder finder,则此设置定义静态文件应用程序将遍历的其他位置,例如如果您使用collectstaticfindstatic 管理命令或使用静态文件服务视图。

    在您的设置中,您应该:

    MEDIA_ROOT = os.path.join(BASE_DIR, "media/")
    
    STATIC_ROOT = os.path.join(BASE_DIR, "static/")
    
    STATICFILES_DIRS = [os.path.join(BASE_DIR, "static"),]
    

    ...哪里:

    BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
    

    现在在默认的 Django settings.py 中定义。

    【讨论】:

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