【发布时间】:2012-01-31 01:20:36
【问题描述】:
我被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
问题:
谁能向我解释一下工作流程:理想情况下应该如何做。到目前为止,我将上面的代码 sn-ps 复制/粘贴到它们指定的位置,并继续在静态目录中创建新文件,它就可以工作了。然而,在我的
settings.STATIC_ROOT中,我指向了一个不同的目录。如果有人能解释每个设置的工作流程,那就太好了:如何收集和管理文件,以及遵循什么好的做法。
谢谢。
【问题讨论】:
-
您能否澄清一下“解释工作流程”的含义?如果您在第 3 部分中进行开发,您的 url 模式也应该以条件为条件。您可以通过添加
if settings.DEBUG:来做到这一点 django 不太擅长提供静态媒体,这应该留给真正的网络服务器。 -
嗨@user993563 我什至无法在几个论坛中找到我想要的解决方案。但是您的问题清楚地解释了谢谢伙计...干得好...
-
很好的解释,谢谢
标签: django django-urls django-staticfiles