我很困惑static root
,想澄清一下事情。
要在Django中提供静态文件,以下代码应位于settings.py
和中urls.py
:
import os
PROJECT_DIR=os.path.dirname(__file__)
1.收集静态文件的目录的绝对路径
STATIC_ROOT= os.path.join(PROJECT_DIR,'static_media/')
2.静态文件的URL前缀
STATIC_URL = '/static/'
3.静态文件的其他位置
STATICFILES_DIRS = ( os.path.join(PROJECT_DIR,'static/'),)
...以及urls.py
以下几行:
from django.contrib.staticfiles.urls import staticfiles_urlpatterns
urlpatterns += patterns('', (
r'^static/(?P<path>.*)$',
'django.views.static.serve',
{'document_root': settings.STATIC_ROOT}
))
4.我们也使用 python manage.py collectstatic
问题:
任何人都可以向我解释工作流程:理想情况下应该如何做。到目前为止,我将上述代码段复制/粘贴到它们的指定位置,然后继续在静态目录中创建新文件,并且可以正常工作。
settings.STATIC_ROOT
但是,在我的文章中,我指向了另一个目录。如果有人可以解释每种设置的工作流程,那就太好了:文件的收集和管理方式以及遵循的最佳做法是什么。
谢谢。
if settings.DEBUG:
django不太擅长提供静态媒体来做到这一点,这应该留给真正的Web服务器。