files estaticos bootstrap archivos python django static-files

python - estaticos - Django-No se pueden cargar archivos CSS estáticos



django styles (14)

¿Faltan estos en su settings.py ? Estoy pegando uno de los ajustes de mi proyecto:

TEMPLATE_CONTEXT_PROCESSORS = ("django.contrib.auth.context_processors.auth", "django.core.context_processors.debug", "django.core.context_processors.i18n", "django.core.context_processors.media", "django.core.context_processors.static", "django.contrib.messages.context_processors.messages")

Además, esto es lo que tengo en mi urls.py :

urlpatterns += patterns('''', ( r''^static/(?P<path>.*)$'', ''django.views.static.serve'', {''document_root'': ''static''} ))

Estoy ejecutando el servidor de desarrollo de Django ( runserver ) en mi máquina local (Mac OS X) y no puedo cargar los archivos CSS.

Aquí están las entradas relevantes en settings.py:

STATIC_ROOT = ''/Users/username/Projects/mysite/static/'' STATIC_URL = ''/static/'' STATICFILES_DIRS = ( ''/Users/thaymore/Projects/mysite/cal/static'', ) STATICFILES_FINDERS = ( ''django.contrib.staticfiles.finders.FileSystemFinder'', ''django.contrib.staticfiles.finders.AppDirectoriesFinder'', #''django.contrib.staticfiles.finders.DefaultStorageFinder'', ) INSTALLED_APPS = ( # other apps ... ''django.contrib.staticfiles'', )

En mi views.py estoy solicitando el contexto:

return render_to_response("cal/main.html",dict(entries=entries),context_instance=RequestContext(request))

Y en mi plantilla, {{ STATIC_URL }} procesa correctamente:

<link type="text/css" href="{{ STATIC_URL }}css/main.css" />

Se convierte en:

<link type="text/css" href="/static/css/main.css"/>

Que es donde el archivo se encuentra realmente. También ejecuté collectstatic para asegurarme de que todos los archivos fueron recolectados.

También tengo las siguientes líneas en mi urls.py:

from django.contrib.staticfiles.urls import staticfiles_urlpatterns urlpatterns += staticfiles_urlpatterns()

Soy nuevo en Django, así que probablemente me esté perdiendo algo simple: agradecería cualquier ayuda.


¿Has añadido en tus plantillas:

{% load staticfiles %}

Esto carga lo que se necesita, pero por alguna razón he experimentado que a veces funciona sin esto ...


Agregue el siguiente código a su settings.py :

STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ]

Después de eso, cree la carpeta estática en el directorio raíz de su proyecto.

Para cargar los archivos estáticos en plantillas use:

{% load static %} <img src="{% static "images/index.jpeg" %}" alt="My image"/>


Agregue este "django.core.context_processors.static", procesador de contexto en su settings.py

TEMPLATE_CONTEXT_PROCESSORS = ( "django.core.context_processors.static",

)


Con Django 1.11.x +, debe configurar archivos estáticos en settings.py as,

STATIC_URL = ''/static/'' # the path in url STATICFILES_DIRS = [ os.path.join(BASE_DIR, "static"), ]

y usarlo con etiqueta de plantilla estática,

{% load static %} <link rel="stylesheet" href="{% static ''css/bootstrap.css'' %}">


Estos pasos funcionan para mí, solo vea Cargar archivos estáticos (CSS, JS, e imágenes) en Django

Yo uso Django 1.10.

  1. cree una carpeta static en el mismo nivel de settings.py , la ruta de mi settings.py es ~/djcode/mysite/mysite/settings.py , por lo que este directorio es ~/djcode/mysite/mysite/static/ ;
  2. cree dos carpetas static_dirs y static_root en static , que es ~/djcode/mysite/mysite/static/static_dirs/ y ~/djcode/mysite/mysite/static/static_root/ ;
  3. escribe settings.py como esto:

    # Static files (CSS, JavaScript, Images) # https://docs.djangoproject.com/en/1.10/howto/static-files/ STATIC_URL = ''/static/'' STATIC_ROOT = os.path.join(BASE_DIR, ''mysite'', ''static'', ''static_root'') STATICFILES_DIRS = ( os.path.join(BASE_DIR, ''mysite'', ''static'', ''static_dirs''), )

  4. $ python manage.py collectstatic este comando $ python manage.py collectstatic en shell;

  5. cree una carpeta css en static_dirs y static_dirs en su propio archivo .css , la ruta de su archivo css es ~/djcode/mysite/mysite/static/static_dirs/css/my_style.css ;

  6. cambie la etiqueta <link> en el archivo .html : <link rel="stylesheet" type="text/css" href="{% static ''css/my_style.css'' %}"> ,

Finalmente, la ruta de este enlace es http://192.168.1.100:8023/static/css/my_style.css

¡Bingo!


Lea esto detenidamente: https://docs.djangoproject.com/en/dev/ref/contrib/staticfiles/

¿Está django.contrib.staticfiles en su INSTALLED_APPS en settings.py ?

DEBUG=False ? Si es así, debe llamar a runserver con el parámetro --insecure :

python manage.py runserver --insecure

collectstatic no influye en la publicación de archivos a través del servidor de desarrollo. Es para recopilar los archivos estáticos en una ubicación STATIC_ROOT para que su servidor web los encuentre. De hecho, la ejecución de collectstatic con su STATIC_ROOT establecido en una ruta en STATICFILES_DIRS es una mala idea. Debe verificar dos veces para asegurarse de que sus archivos CSS existan ahora.


Otra cosa sencilla es intentar detener y luego reiniciar el servidor, por ejemplo,

$ python manage.py runserver

Miré las otras respuestas, pero reiniciar el servidor funcionó para mí.


Probé este modelo y funcionó.

Cambios en la configuración según el proyecto django creado con shell

"django-admin.py startproject xxx"# here xxx is my app name

modifique la carpeta como se muestra debajo de la estructura cargando nuestros archivos estáticos para ejecutar en el servidor

La estructura de xxx es:

> . > |-- manage.py > |-- templates > | `-- home.html > `-- test_project > |-- __init__.py > |-- settings.py > |-- static > | |-- images > | | `-- 01.jpg > | |-- style.css > |-- urls.py > `-- wsgi.py

- modificaciones en Settings.py

import os INSTALLED_APPS = ( ''xxx'',# my app is to be load into it) STATIC_ROOT = '''' STATIC_URL = ''/static/'' PROJECT_DIR = os.path.dirname(__file__) TEMPLATE_DIRS = ( os.path.join(PROJECT_DIR, ''../templates''),)#include this

- modificaciones en urls.py

from django.conf.urls import patterns, include, url from django.views.generic import TemplateView class DirectTemplateView(TemplateView): extra_context = None def get_context_data(self, **kwargs): context = super(self.__class__, self).get_context_data(**kwargs) if self.extra_context is not None: for key, value in self.extra_context.items(): if callable(value): context[key] = value() else: context[key] = value return context urlpatterns = patterns('''', url(r''^$'', DirectTemplateView.as_view(template_name="home.html")), )

- home.html

<html> <head> <link href="{{STATIC_URL}}style.css" rel="stylesheet" type="text/css"> </head> <body> <h1>This is home for some_app</h1> <img src="{{STATIC_URL}}/images/01.jpg" width=150px;height=150px; alt="Smiley "> </body> </html>


Tuve que usar

STATICFILES_DIRS = ( ''/home/USERNAME/webapps/django/PROJECT/static/'', )

Eso me ayudó.


Tuvo el mismo camino en STATICFILES_DIRS Y STATIC_ROOT, me encontré con el mismo problema y debajo estaba la excepción:

Configuración incorrecta: la configuración STATICFILES_DIRS no debe contener la configuración STATIC_ROOT

Para local, no necesita STATICFILES_DIRS, ya que de todos modos no necesita ejecutar collectstatic. Una vez que lo comentas, debería funcionar bien.


Vea si su aplicación principal (donde se encuentra el directorio estático) está incluida en su INSTALLED_APPS.

Los archivos se buscan utilizando los buscadores habilitados. El valor predeterminado es buscar en todas las ubicaciones definidas en STATICFILES_DIRS y en el directorio ''estático'' de las aplicaciones especificadas por la configuración INSTALLED_APPS.


adicional

PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__)) STATICFILES_DIRS = ( os.path.join(PROJECT_ROOT, "static"), )

y STATIC_ROOT de settings.py , funcionó para mí


DEBUG = True en mi configuración local lo hizo por mí.