2009-12-02 18 views
8

Acabo de mover mi sitio django en mi servidor de almacenamiento intermedio, y el lado de administrador del sitio no tiene estilo, cuando anteriormente en el desarrollo local estaba bien, leí en algún lugar que necesito crear un enlace simbólico, lo hice al hacer estoadministrador de Django no tiene estilo

sudo ln -s /var/www/sico/htdocs /usr/lib/python2.5/site-packages/django/contrib/admin/ 

pero eso no ha hecho nada ¿hay algo más que pueda probar?

+0

Ver también http://stackoverflow.com/questions/1081596/django-serving-admin-media-files. –

Respuesta

10

Dependiendo de la configuración del servidor web, puede hacerlo de dos maneras:

enlace simbólico

En la carpeta raíz de su sitio web, debe crear un enlace simbólico en el directorio de medios de administración de Django, con el nombre como ADMIN_MEDIA_PREFIX en la configuración de la aplicación Django. De manera predeterminada, esto es /media/, por lo tanto, en su carpeta raíz web, cree un enlace simbólico llamado media al /usr/lib/python2.5/site-packages/django/contrib/admin/media. (Observe el media final al final del enlace simbólico, que falta en su propio ejemplo - el medio de administración de Django se encuentra en un subdirectorio mediain contrib/admin`).

Apache Alias ​​

Si el servidor de producción es Apache, y se puede cambiar la configuración de la raíz, se puede utilizar mod_alias para establecer la ruta de acceso a los medios de administración de Django. Una vez más, en el supuesto de que su ADMIN_MEDIA_PREFIX es /media/, se puede configurar un alias de esta manera:

<VirtualHost *:80> 
    Alias /media/ /usr/local/lib/python2.5/site-packages/django/contrib/admin/media/ 
</VirtualHost> 

De esta manera, todas las solicitudes previstas en el camino /media/ se resolverá a ese directorio.

Existe una técnica similar para la mayoría de los otros servidores, como Lighttpd o nginx; consulte la documentación de su servidor si no usa Apache.


la solución usando Apache mod_alias es probablemente el mejor para el despliegue, pero el enfoque enlaces simbólicos funciona igual de bien también.

La razón de su aplicación trabajó en el servidor de transición es más probable debido a que estaba funcionando con el servidor web interno de Django, que puede resolver automáticamente la ruta de acceso al directorio de medios de administración.

+0

hola, ¿puedo saber dónde? " Alias ​​/ media//usr/local/lib/python2.5/site-packages/django/contrib/admin/media/ " ir ? ¿Entra en el archivo http.conf? – DjangoRocks

+0

Para los curiosos: sí, la entrada del host virtual va en el archivo httpd.conf de Apache. – Coderer

+1

@mipadi Creo que para django 1.4 tienes que hacer 'Alias ​​/ static/admin C: \ Python27 \ Lib \ site-packages \ django \ contrib \ admin \ static \ admin' –

1

creo que ha creado el enlace simbólico al revés - su comando ha creado un enlace simbólico en htdocs ..../contrib/admin/

Lo que necesita es algo así como

sudo ln -s /usr/lib/python2.5/site-packages/django/contrib/admin/ /var/www/sico/htdocs/X 

Donde X es lo que necesita para llegar a su ADMIN_MEDIA_PREFIX. Creo que el defecto sería admin/media

Esperamos que ayuda

Cuestiones relacionadas