0

Django 1.4 发行说明状态:

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

有人可以解释一下这是如何完成的吗?在 Django 1.3 之前,我们在 settings.py 中使用了 ADMIN_MEDIA_PREFIX,现在已弃用。然而,由于我们一直在开发静态文件(js、css、...),因此 staticfiles 应用程序对我们来说是一个相当烦人的问题。每次修改后调用 collectstatic 是一场噩梦:-P

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

4

2 回答 2

1

manage.py collectstatic 在您部署时使用,在开发期间您可以通过将其添加到您的 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()

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

于 2012-04-02T11:22:56.193 回答
0

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

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

于 2012-04-01T20:07:15.963 回答