/ / Django servindo arquivos estáticos localmente - django

Django servindo arquivos estáticos localmente - django

Já faz um tempo desde que configurei o Django para funcionar localmente. Estou usando a versão 1.11. Fazê-lo servir os arquivos estáticos. Meu projeto se chama chatsys e eu criei a pasta estática e css nesta pasta chatsysstaticcssstyle.css .

Aqui estão as configurações atuais no arquivo de configurações.

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
STATIC_URL = "/static/"
STATIC_ROOT = os.path.join(BASE_DIR, "static")

e nos urls

#for serving static files
from django.conf import settings
from django.conf.urls.static import static
urlpatterns += static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

e finalmente no html

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

no entanto, no console do runserver recebo 404 para /static/css/style.css

Respostas:

3 para resposta № 1

Você deve definir STATICFILES_DIRS e inclua o diretório estático do seu projeto lá.

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

Esses são os diretórios dos quais o Django coleta arquivos estáticos.

Você deve então mudar STATIC_ROOT para ser um diretório diferente. É o diretório que collectstatic coleta arquivos estáticos para. A raiz estática não deve estar sob controle de versão.

Como um aparte, você está carregando a tag estática em seu modelo, mas não a está usando. Você pode alterá-lo para:

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

0 para resposta № 2

Mova sua pasta estática sob o diretório base

  • chatsys
    • migrações
    • modelos
    • etc.
  • estático
    • css
      • style.css