2
respostas

[Dúvida] CSS não renderiza

Estou criando um projeto de formulário utilizando Django, mas ao solicitar a execução do servidor o programa não renderiza com as informações do CSS. No terminal apresentou esse problema também:

[12/Apr/2024 14:43:54] "GET / HTTP/1.1" 200 1849
Not Found: /staticfiles/style.css
[12/Apr/2024 14:43:55] "GET /staticfiles/style.css HTTP/1.1" 404 2286
Not Found: /favicon.ico
[12/Apr/2024 14:43:55,227] - Broken pipe from ('127.0.0.1', 56181)
2 respostas

Fala, Igor! Joia?

Aparentemente o Django não está conseguindo localizar o arquivo CSS e isso geralmente ocorre quando o Django não está configurado corretamente para servir arquivos estáticos.

No Django, os arquivos estáticos, como CSS, JavaScript e imagens, são servidos de maneira diferente dos arquivos dinâmicos. Para isso, você precisa configurar corretamente as variáveis STATIC_URL e STATICFILES_DIRS no seu arquivo settings.py.

A variável STATIC_URL define a URL que será usada para acessar os arquivos estáticos. Ela é geralmente definida assim:

STATIC_URL = '/static/'

A variável STATICFILES_DIRS é uma lista de diretórios onde o Django irá procurar arquivos estáticos. Por exemplo, se seus arquivos CSS estão em um diretório chamado staticfiles na raiz do seu projeto, você pode configurá-la assim:

STATICFILES_DIRS = [
    BASE_DIR / 'staticfiles',
]

Após configurar essas variáveis, você pode referenciar seus arquivos CSS em seus templates HTML usando a tag {% static %}. Por exemplo, se você tem um arquivo style.css no diretório staticfiles, você pode referenciá-lo assim:

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

Espero que isso resolva o seu problema. Se não resolver, pode ser que haja algum outro problema na configuração do seu projeto. Nesse caso, recomendo que compartilhe todo o seu projeto comigo para testes.

Bons estudos!

Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.

Salve Igor,

Se você já fez os passos de collectstatic e agora está tentando alterar o static que está no setup tem que adicionar uma configuração a mais no urls.py.

Pelo menos eu tive esse erro e foi assim que consegui resolver.

no arquivo que está no <seu_projeto>/setup/urls.py na definição do urlpatterns adiciona no final o STATIC_URL igual foi feito para o MEDIA_URL no curso.

urlpatterns = [
    path('admin/', admin.site.urls),
    path('', include('galeria.urls'))
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT)

Assim o ambiente de desenvolvimento vai reconhecer os arquivos staticos que não foram coletados ainda.