por qué mi sitio de administración de django no tiene el estilo css


Hago un sitio de administración de django usando la versión de desarrollo de django

Pero no tiene un estilo css :

texto alt

¿Qué puedo hacer .

Gracias

Author: BoltClock, 2010-12-12

14 answers

Django no sirve archivos estáticos por su cuenta. Tienes que decirle dónde están los archivos.

El ADMIN_MEDIA_PREFIX en el settings.py apuntará a Django en la ubicación correcta.

Dado que está utilizando la versión de desarrollo, querrá el documento específico de desarrollo para los archivos estáticos how-to. El enlace de Adam te llevará a la versión 1.2.

 13
Author: Evan Porter,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-12-12 19:39:16

Después de configurar su STATIC_ROOT y STATIC_URL, es posible que tenga que ejecutar

python manage.py collectstatic
 48
Author: David Mann,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-15 16:51:59

ADMIN_MEDIA_PREFIX ahora está en desuso, use STATIC_URL en su lugar. Ajuste STATIC_URL = '/static/' en settings.py debería hacer el trabajo. Try:

import os.path  import sys

PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))

Y luego:

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'

Funciona en Django 1.4 pre-alpha SVN-16920.

 15
Author: Shamar,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-19 13:40:02

También me encontré con este problema siguiendo el tutorial del libro de Django. En el Capítulo 5 / Instalación del modelo, el libro indica cuando se hace referencia a las INSTALLED_APPS predeterminadas- "Comenta temporalmente las seis cadenas poniendo un carácter hash ( # ) delante de ellas." http://www.djangobook.com/en/2.0/chapter05.html

Luego, en el Capítulo 6, el Libro le dice al lector que descomente 4 de esas 6 líneas- "tenga en cuenta que comentamos estas cuatro entradas INSTALLED_APPS en el Capítulo 5. Quite el comentario de ellos ahora."

Pero la línea statcifiles es lo que se necesita para restaurar CSS a la página de administración, así que descomente que "django.contrib.staticfiles",

 9
Author: Chris SH,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-03 00:36:58

He leído varios otros hilos tratando de arreglar esto...recurrido a un alias como en otros hilos. Esto supone que su propia aplicación personalizada está sirviendo archivos estáticos correctamente, lo que indicaría que su STATIC_ROOT y STATIC_URL tienen la configuración adecuada.

STATIC_ROOT = ''
STATIC_URL = '/static/'

Luego (desde su directorio estático):

ubuntu@ip-1-2-3-4:/srv/www/mysite.com/app_folder/static$ sudo ln -s /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/ admin

Espero que esto ayude a alguien...hay muchos hilos sobre este tema. :(

 6
Author: Taylor,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-07-19 23:17:19

En /project_name/project_name/settings.py debe configurar STATIC_URL para indicar a su sitio qué url usar para archivos estáticos.

Luego establezca STATIC_ROOT como una carpeta en su sistema de archivos que no es la misma que cualquiera de sus directorios listados en la lista STATICFILES_DIRS.

Una vez establecido STATICFILES_ROOT, se ejecutará python manage.py collectstatic desde el directorio del proyecto.

Esto copiará todos los archivos estáticos del administrador y todos los archivos en cualquier otra carpeta listada en la lista STATICFILES_DIRS. Básicamente, esto pone todos sus archivos estáticos en un solo lugar para que pueda moverse a su CDN al implementar su sitio. Si eres como yo y no tienes una CDN, entonces tienes dos opciones:

  1. Agregue la carpeta que estableció como STATIC_ROOT a la lista STATICFILES_DIRS. Esto permitirá a los buscadores de archivos estáticos en django localizar todos los archivos estáticos.
  2. Mueva toda la carpeta de archivos estáticos a otro lugar de su sistema de archivos y dirija STATICFILES_DIRS para incluir esa nueva ubicación.

No hago comentarios sobre la seguridad con esta respuesta, es solo la forma en que he estado capaz de desarrollar con mi servidor web para pequeños proyectos. Espero que desee una CDN como django sugiere si está haciendo algo a mayor escala.

ACTUALIZAR: Me encontré con este problema y este método no hizo lo que creo que quieres. Lo que terminó funcionando para mí fue después de ejecutar collectstatic Simplemente copié los archivos estáticos de administración que puso en STATICFILES_ROOT en el directorio que había utilizado para mis propios archivos estáticos. Eso resolvió el problema para mí.

 3
Author: Brad P.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-16 01:58:28

Si está utilizando el servidor Apache para alojar su sitio django, debe asegurarse de que el alias estático apunte a su directorio /a site/site_media/static/. Si sus archivos estáticos están en el directorio / a site / site/site_media/ static/, la configuración anterior de alias de Apache no funcionará.

 2
Author: Yulun,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-11-02 17:38:50

Asegúrese de que 'django.contrib.staticfiles' está en su INSTALLED_APPS en su settings.py

 1
Author: RedRory,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-08-19 21:43:17

Además de que muchas de las otras respuestas son útiles, tuve un problema que aún no se ha notado. Después de actualizar de Django 1.3 a 1.6, mi directorio de archivos estáticos tenía un enlace simbólico roto a los archivos estáticos del administrador de django.

Mi settings.py se configuró con:

STATICFILES_DIRS = (
    '/var/www/static/my-dev',
)

De acuerdo con esta respuesta ,

Django ahora espera encontrar los archivos estáticos de administración debajo de la URL / admin/.

Tenía un enlace simbólico /var/www/static/my-dev/admin que se estableció a:

admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/

Esa ubicación ya no existe en django 1.6, así que actualizé el enlace a:

admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/

Y ahora mi sitio de administración está funcionando correctamente.

 1
Author: cod3monk3y,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:09

Mientras seguía el tutorial de Django, tuve un problema similar y en mi caso el problema fue el tipo mime utilizado por el servidor de desarrollo al servir archivos css.

El tipo mime servido fue 'application / x-css' lo que llevó al siguiente mensaje de advertencia en Chrome (en la pestaña 'Red' de las herramientas para desarrolladores):

Recurso interpretado como hoja de estilos pero transferido con tipo MIME aplicación / x-css: " http://127.0.0.1:8000/static/admin/css/base.css "

La solución que he encontrado: cambiar el tipo mime a servir agregando las siguientes líneas a la aplicación web de django manage.py archivo:

import mimetypes
mimetypes.init()
mimetypes.types_map['.css'] = 'text/css'

Nota: trabajó para mí con Django 1.7.4 en Python 2.7 y Chrome 40.0

 0
Author: Gio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-07 16:43:28

El mismo tipo de problema que encontré mientras desarrollaba un sitio en django-1.10.5 y python-2.7.13. Pero en mi firefox-51 y Chrome, la página de inicio de sesión fue capaz de obtener el css, pero todavía no había estilo. Pero extrañamente estaba trabajando en IE-8..

He intentado hacer todo lo posible mencionado aquí y adecuado para mi conjunto de versiones sw. Ninguno funcionó.

Pero cuando probé el mismo sitio en otro sistema que tenía python-2.7.8, funcionó..

Acaba de publicar si puede ayudar a alguien...

Editado: más tarde encontré que en python-2.7.13, escribiendo las siguientes dos líneas en settings.py (además de limpiar la caché del navegador) había hecho el truco

import mimetypes
mimetypes.add_type("text/css", ".css", True)
 0
Author: Nikhil Saxena,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-23 05:22:38

Si tiene un valor establecido en settings.py para STATICFILES_DIRS y la carpeta declarada no existe o está en una ubicación incorrecta, hará que el Administrador no tenga estilo e. g definiendo STATICFILES_DIRS = (os.camino.join (BASE_DIR, " static")) y la carpeta estática no existe

 0
Author: cormacio100,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-07-12 00:07:13

Fallando después de probar 1000 de sugerencias, finalmente encontré una solución que me ayudó. Esto es lo que probé y lo que estaba usando. Estoy usando django-1.11 y nginx web server. En primer lugar, me aseguré de que mis archivos CSS/js no estén recibiendo 404 en la consola del navegador. Después de eso, pude ver una advertencia

Recurso interpretado como Hoja de estilo pero transferido con tipo mime text/plain

Encontré la base.html en plantillas de administración y eliminado

type="text/css"

Y ahora las líneas se ven así:

<link rel="stylesheet"  href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" /> 

Esto solucionó el problema para mí.

 0
Author: Rahul Singal,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-09-05 12:26:02

Mi problema se resolvió creando un nuevo Entorno Virtual para el proyecto, antes de eso estaba usando el intérprete python de nivel general del sistema.

$ mkvirtualenv myproject

Referencia: https://docs.djangoproject.com/en/2.1/howto/windows/

 0
Author: Khateeb321,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-10-01 06:52:08