Django 1.4管理静态文件没有staticfiles应用程序

时间:2012-04-01 20:04:24

标签: django static django-admin django-1.4

Django 1.4 release notes州:

  

如果您隐式依赖管理静态文件的路径   在Django的源代码中,您需要更新该路径。该   文件从django / contrib / admin / media /移动到   django的/了contrib /管理/静态/管理/.

有人能解释一下这是怎么做到的吗?直到Django 1.3,我们在settings.py中使用了ADMIN_MEDIA_PREFIX,现在已弃用。但是,由于我们一直在开发静态文件(js,css,...),因此staticfiles应用程序对我们来说是一个相当烦人的nogo。每次修改后调用collectstatic都是一场噩梦:-P

纯Python / Django解决方案会很棒。如果这是不可能的,我们使用LighTPD作为服务器,而不是Apache。

2 个答案:

答案 0 :(得分:1)

在部署时使用manage.py collectstatic,在开发期间,您可以通过将django添加到您的url.py中来为django提供静态和媒体文件:

from django.conf.urls.static import static
from django.conf import settings
from django.contrib.staticfiles.urls import staticfiles_urlpatterns

...
...

if settings.DEBUG:
   # add one of these for every non-static root you want to serve
   urlpatterns+= static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
   # this take cares of static media (i.e. bundled in apps, and specified in settings)
   urlpatterns+= staticfiles_urlpatterns()

这也将提供与可重用应用程序捆绑在一起的所有静态文件。这避免了真正的噩梦必须为每个项目的每个第三方应用添加符号链接到您的网络服务器根目录!

答案 1 :(得分:0)

哎呀,我刚刚在Django的新文档中找到了解决方案:

https://docs.djangoproject.com/en/1.4/howto/deployment/wsgi/modwsgi/#serving-the-admin-files