sqlmigrate - documentacion de django
Django Admin CSS faltante (6)
Estuve jugando con el nuevo comando collectstatic
y lo tengo funcionando para mis páginas normales. Es decir, puedo cargar mi CSS en esta ubicación http://localhost:8000/static/css/main.css
. Sin embargo, el CSS para mi administrador de django no parece estar apareciendo.
Cuando navego a la ubicación de css del administrador en http://localhost:8000/static/admin/css/base.css
, http://localhost:8000/static/admin/css/base.css
una página 404 no encontrada con el siguiente error: /home/nai/GitProjects/cats/django-trunk/django/contrib/admin/media/css/base.css" does not exist
. Buscando en django-trunk, nunca tuve /home/nai/GitProjects/cats/django-trunk/django/contrib/admin/media/
carpeta para comenzar.
¿Eso es raro?
En cualquier caso, en mi carpeta estática, hay una carpeta de administrador con las carpetas css, img y js que se crearon cuando ejecuté collectstatic y la url de base.css parece apuntar a esa ubicación.
Esto está sucediendo en mi servidor de desarrollo django. Aquí hay algunos fragmentos para ayudar en la búsqueda de errores:
urls
33 # In order for Dev Server to serve media files for the frontend site.
34 urlpatterns += staticfiles_urlpatterns()
35
36 try:
37 if settings.DEBUG: # defined in manage.py when the first arg is "runserver"
38 urlpatterns += patterns('''',
39 (r''^media/(?P<path>.*)$'', ''django.views.static.serve'',{''document_root'': settings.MEDIA_ROOT}),
40 (r''^media-admin/(?P<path>.*)$'', ''django.views.static.serve'',{''document_root'': os.path.join(settings.MEDIA_ROOT, ''..'', settings.ADMIN_MEDIA_PREFIX)}),
41 )
42 except NameError:
43 pass
Creo que podría ser algo relacionado con la línea 40 en mi archivo URLS pero cambiar media-admin por static / admin no me ayudó.
ajustes
58 ADMIN_MEDIA_PREFIX = ''/static/admin''
69 STATIC_ROOT = os.path.join(os.path.abspath(os.path.join(PROJECT_ROOT, ''..'', MEDIA_DIR, ''static'')), '''')
70
71 # URL prefix for static files.
72 # Example: "http://media.lawrence.com/static/"
73 STATIC_URL = ''/static/''
74
75 # Additional locations of static files. Global files are stored in here
76 STATICFILES_DIRS = (
77 os.path.join(os.path.abspath(os.path.join(PROJECT_ROOT, ''..'', ''proj_public'', ''static'', ''proj'')), ''''),
78 )
79
Django recomienda que implemente archivos estáticos con un servidor web que no sea wsgi.
- En settings.py , establece:
STATIC_ROOT = ''static''
Ejecute
python manage.py collectstatic
, que copiará los archivos estáticos del administrador de Django en/path/to/project/static/
Configura tu servidor de archivos estático. Si usa Nginx, puede agregar esta configuración:
location /static/ { alias /path/to/project/static/; expires modified +1w; }
Recarga tu servidor web
Ahora debería tener acceso a los archivos estáticos.
En Django 1.4 ADMIN_MEDIA_PREFIX
está en desuso. Estos son los pasos que seguí para ponerme al día con estos cambios algo recientes de Django:
en
settings.py
, agreguedjango.contrib.staticfiles
aINSTALLED_APPS
en
settings.py
defineSTATIC_URL
- la aplicación staticfiles no se ejecutará sin él. Al usarrunserver
, se manejarán mágicamente, pero cuando implemente, debe ser una ubicación donde esos recursos puedan ser captados por un navegador.
Creo que eso es todo.
Estoy usando Django 1.4.3
Lo que NO funcionó para mí: no importa cuánto edité ADMIN_MEDIA_PREFIX en settings.py No noté ningún cambio en el HTML generado para las páginas de administración de Django. Siempre dice /media/admin/base.css cuando veo la fuente.
¿Qué funcionó para mí? Copié la carpeta ''admin'' de /django/contrib/admin/static/
y la pegué en la carpeta ''media'' de mis proyectos
Ahora funciona genial
Estoy usando chef para autocompilar mi servidor django en un servidor AWS Ubuntu. Esta publicación me ayudó, pero lo que terminé haciendo fue agregar el directorio a las páginas estáticas del administrador del paquete en local_setings.py: https://github.com/jaycrossler/geoq-chef-repo/blob/master/cookbooks/geoq/templates/default/local_settings.py.erb#L16
(added to local_settings.py or to settings.py):
STATICFILES_DIRS = (''<%= node[''geoq''][''virtualenv''][''location''] %>/local/lib/python2.7/site-packages/django/contrib/admin/static/'',)
Esto resultó en que local_settings.py tenga:
STATICFILES_DIRS = (''/var/lib/geoq/local/lib/python2.7/site-packages/django/contrib/admin/static/'',)
Tenga en cuenta que, si ya tiene otros elementos en sus STATICFILES_DIRS, es posible que desee agregarlos a la lista, en lugar de sobreescribirlos.
Necesita una barra inclinada en su configuración ADMIN_MEDIA_PREFIX
.
Cambiar a:
ADMIN_MEDIA_PREFIX = ''/static/admin/''
En settings.py No use tuple para
STATICFILES_DIRS = (os.path.join (BASE_DIR, ''static''),)
deberías usar la lista, como esta
STATICFILES_DIRS = [os.path.join (BASE_DIR, ''static''),]