【发布时间】:2019-01-23 21:29:34
【问题描述】:
【问题讨论】:
-
不要发布这个截图,因为它们很难阅读。
标签: python django python-3.x django-templates django-views
【问题讨论】:
标签: python django python-3.x django-templates django-views
首先,静态根是用于生产的。如果您希望 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 %} ,否则它不会拾取任何静态文件。
【讨论】:
您需要为本地项目包含 STATIC_DIRS。
您可以在Django documentation 中找到这些设置。以下是我自己对文档的定义和引用:
MEDIA_ROOT 是使用FileField 上传的文件所在的文件夹。
将包含user-uploaded files 的目录的绝对文件系统路径。
STATIC_ROOT是使用manage.py collectstatic后会存放静态文件的文件夹
collectstatic将收集用于部署的静态文件的目录的绝对路径。如果
staticfilescontrib 应用程序已启用(默认),collectstatic管理命令会将静态文件收集到此目录中。有关使用的更多详细信息,请参阅管理静态文件的操作指南。
STATICFILES_DIRS 是 Django 将在其中搜索除每个已安装应用程序的 static 文件夹之外的其他静态文件的文件夹列表。
如果启用了
FileSystemFinderfinder,则此设置定义静态文件应用程序将遍历的其他位置,例如如果您使用collectstatic或findstatic管理命令或使用静态文件服务视图。
在您的设置中,您应该:
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 中定义。
【讨论】: