files windows django apache admin mod-python

windows - files - Django Apache/mod_python Admin CSS no aparece con las tablas de administración



django collectstatic (5)

Tengo Windows XP / Django / apache / mod_python trabajando en localhost. Todas las piezas funcionan, con la excepción del administrador CSS que no se procesa. El administrador funciona, pero no tiene formato html. He hecho adiciones en:

settings.py INSTALLED_APPS ''django.contrib.admin'', urls.py from django.contrib import admin admin.autodiscover() (r''^admin/(.*)'', admin.site.root), conf/http.conf <Location "/"> SetHandler python-program PythonPath "[''C:/django''] + sys.path" PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonDebug On </Location> <Location "/cpssite/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE myapplication.settings PythonInterpreter /myapplication PythonDebug On </Location>

Estoy perplejo. ¿Hay más código que debería haber agregado en algún lado?


¿Su ADMIN_MEDIA_PREFIX existe? ¿Es diferente de MEDIA_URL? ¿Incluyó la barra final? ¿Se gestiona Apache para que sirva correctamente los medios de administración?

La configuración predeterminada de Django tiene el medio de administración ubicado en {Django install dir} / contrib / admin / media. ADMIN_MEDIA_PREFIX está predeterminado en / media /. Entonces necesitas agregar algo como esto a tu configuración de Apache:

Alias /media/ /path/to/django/contrib/admin/media/

Esto le indicará a Apache que las solicitudes para mysite.com/media/css/whatever.css significan servir / up /to/django/contrib/admin/media/css/whatever.css, lo que debería resolver su problema.


Solía ​​tener el mismo problema y la siguiente entrada en el http.conf funcionó bien conmigo:

<Directory "Path-to-python/Lib/site-packages/django/contrib/admin/media/"> AllowOverride None Options None Order allow,deny Allow from all </Directory> Alias /media/ "Path-to-Python/Lib/site-packages/django/contrib/admin/media/" <Location "/mysite/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings PythonOption django.root /mysite PythonInterpreter mysite PythonDebug On PythonPath "[''C:/Python/Django/apps''] + sys.path" </Location>


Si no desea tener medios de administración, use el directorio / media, puede especificar ADMIN_MEDIA_PREFIX = ''admin_media'', luego cree un enlace / alias de su servidor web que redirija las llamadas a / admin_media / a / usr / share / pyshared / django / contrib / admin / media (según su sistema operativo) para su servidor de producción ...


Aquí está mi configuración de apache específica de django. Tenga en cuenta que django maneja cada url entrante al sitio (ubicación /), excepto los medios, donde está deshabilitado, y los datos se sirven desde el directorio de medios de django.

<Location "/"> SetHandler python-program PythonHandler django.core.handlers.modpython SetEnv DJANGO_SETTINGS_MODULE mysite.settings #PythonOption django.root / PythonDebug On PythonPath "[''e:/dj''] + sys.path" </Location> Alias /media e:/dj/django-trunk/django/contrib/admin/media/ <Location "/media"> SetHandler None </Location>


Dado que la pregunta es de hace mucho tiempo, esta puede no ser una respuesta relevante, pero estoy poniendo esta información para ayudar a cualquiera que tropiece aquí como yo. A partir de la versión 1.4, la configuración ADMIN_MEDIA_PREFIX ha quedado en desuso. Aquí se describen las formas de servir archivos estáticos y de medios con la versión> = 1.4

https://docs.djangoproject.com/en/dev/releases/1.4/#django-contrib-admin

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

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

Básicamente se puede configurar en 4 pasos:

  1. Establezca STATIC_ROOT para que apunte al directorio que servirá todos los archivos estáticos de su sitio
  2. Establezca STATIC_URL para qué contenido estático debe ser servido
  3. Ejecute manage.py collectstatic
  4. Configure su servidor web para atender solicitudes de STATIC_URL desde STATIC_ROOT

Lo mismo para archivos multimedia