Django no va a servir a mi los archivos estáticos. Aquí está el error devuelto:

[13/Jun/2014 06:12:09] "GET /refund/HTTP/1.1" 200 2927
[13/Jun/2014 06:12:09] "GET /static/css/bootstrap.min.css HTTP/1.1" 404 1667
[13/Jun/2014 06:12:09] "GET /static/css/cover.css HTTP/1.1" 404 1643
[13/Jun/2014 06:12:09] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 1661
[13/Jun/2014 06:12:09] "GET /static/assets/js/docs.min.js HTTP/1.1" 404 1667  
[13/Jun/2014 06:12:09] "GET /static/js/bootstrap.min.js HTTP/1.1" 404 1661
[13/Jun/2014 06:12:09] "GET /static/assets/js/docs.min.js HTTP/1.1" 404 1667

Esta es la parte importante de mi base.html para el bootstrap:

!DOCTYPE html>
<html lang="en">
{% load static %}
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="shortcut icon" href="../../assets/ico/favicon.ico">

<title>Cover Template for Bootstrap</title>

<!-- Bootstrap core CSS -->
{
<link href="{% static "css/bootstrap.min.css"%}" rel="stylesheet">

<!-- Custom styles for this template -->
<link href="{% static "css/cover.css" %}" rel="stylesheet">

Pertinentes del código de settings.py (Nota: Las plantillas funcionado bien.)

TEMPLATE_DIRS = (
    os.path.join(BASE_DIR, 'templates'),
)

STATIC_URL = '/static/'

STATIC_ROOT = ''

Y he aquí cómo mi django proyecto se presenta:

  • admin
  • db.sqlite3
  • nombre del proyecto
  • manage.py
  • nombre de la aplicación
  • estática
    • css
    • dist
  • plantilla
    • base.html

Ningún tipo de ayuda sería muy apreciada. No sé qué podría yo haber hecho mal, he mirado en el código de un millón de veces y claramente debe ser una brecha en mi entendimiento de cómo Django sirve archivos estáticos; sin embargo, yo lo he hecho anteriormente sin problemas.

  • Está usted usando runserver para servir a su aplicación? Con debug=True? Y django.contrib.staticfiles cargado?
  • Es el nombre del directorio «plantilla» o «plantillas»?
  • Yo no puedo comprobar en el momento, pero más tarde esta noche.
  • Es de plantillas, es simplemente un error tipográfico.

3 Comentarios

  1. 34

    hacer lo siguiente:

    1. Si usted está en la DEPURACIÓN, establecer STATICFILES_DIRS = («ruta/a/static») variable en su settings.py. A continuación, debe trabajar sólo en modo de DEPURACIÓN.

    2. Si quieres que también trabajan en implementar modo, establecer STATIC_ROOT = («ruta/a/static_root») variable en el settings.py. A continuación, ejecute python manage.py collectstatic y también debería funcionar.

    Y ahora, para una mejor comprensión de cómo django gestiona los archivos estáticos:

    • Django tiene algunos predefinidos lugares para buscar para los archivos estáticos y recoger de ellos, puede especificar dónde se encuentran ellos con el STATICFILES_FINDERS en su settings.py. Por defecto, busca estática carpeta dentro de sus aplicaciones. Usted puede decirle a Django para buscar archivos estáticos en otras partes por la configuración de la STATICFILES_DIRS variable (lista o tupla de caminos).

    • En modo de DEPURACIÓN, staticfiles se recogen de este rutas (y no de la static_root donde se recogen sus archivos).

    • Al ejecutar python manage.py collectstatic, Django pasa a través de todos los directorios donde los archivos estáticos se pueden encontrar, y coloca en la raíz estática. Cuando se ejecuta en modo de implementar, los archivos estáticos se sirven de este directorio.

    PS: Lo que hago normalmente es crear una app llamada común y crear una estática dir en el interior para colocar todos los css, js para mi proyecto (y también para las plantillas). De esta manera, no tengo que especificar el STATICFILES_DIRS variable.

    Esperanza es claro ahora =).

    • Esto es mucho mejor que la explicación de la uno en la documentación. Para ser honesto, quien escribió algunas partes de la web Django basado documenation nunca debe escribir de nuevo.
    • gracias amigo esto me estaba volviendo loco me tomó como 4 horas para averiguar esto y, finalmente, gracias a ti he logrado vincular mis archivos css.
    • Perfecta explicación!
  2. 4

    Bien, acaba de pasar por el Tutorial, me quedé con este problema bastante. Simplemente reiniciar el servicio web ha solucionado.
    Así que, si acaba de completar el Tutorial de instrucciones, poner un directorio estática//el estilo.css dentro de la dir llamado , mientras que poner

    {% load staticfiles %}
    <link rel="stylesheet" type="text/css" href="{% static '<your_app_name>/style.css' %}" />

    dentro de la cabeza de la sección de archivos html (por ex., index.html) que debe ser diseñado con css-archivo.

    • Ojalá hubiera encontrado este post de 90 minutos atrás…
  3. 0

    Cambio STATIC_ROOT de settings.py, espero que funcione. Tengo el mismo problema….

    TEMPLATE_DIRS = (
        os.path.join(BASE_DIR, 'templates'),
    )
    STATICFILES_DIRS = (
         os.path.join(BASE_DIR, 'static'),
    )
    STATIC_ROOT = os.path.join(os.path.dirname(BASE_DIR), 'static')
    
    STATIC_URL = '/static/'

Dejar respuesta

Please enter your comment!
Please enter your name here