Eu faço um site de administração do Django usando Django versão de desenvolvimento do Django
Mas não tem um estilo CSS:
o que eu posso fazer?
obrigado
Eu faço um site de administração do Django usando Django versão de desenvolvimento do Django
Mas não tem um estilo CSS:
o que eu posso fazer?
obrigado
Respostas:
Django não serve arquivos estáticos por conta própria. Você tem que dizer onde estão os arquivos.
O ADMIN_MEDIA_PREFIX no settings.py apontará o Django para o local correto.
Já que você está usando a versão de desenvolvimento, você vai querer o documento específico do dev para instruções de arquivos estáticos . O link de Adam o levará à versão 1.2.
fonte
Depois de configurar seu
STATIC_ROOT
eSTATIC_URL
, você pode ter que executarpython manage.py collectstatic
fonte
STATIC_ROOT
eSTATIC_URL
, exemplo: eu combinei "staticfiles" e "static" , useiSTATIC_ROOT=os.path.join(BASE_DIR, "staticfiles")"
eSTATIC_URL="/static/"
. Meu aplicativo funcionou bem, mas os arquivos admin não foram encontrados. então mude para "staticfiles" ou "static"ADMIN_MEDIA_PREFIX
está obsoleto agora, use em seuSTATIC_URL
lugar. DefinirSTATIC_URL = '/static/'
em settings.py deve fazer o trabalho. Experimentar:import os.path import sys PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))
e depois:
STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static') STATIC_URL = '/static/'
Funciona no Django 1.4 pré-alfa SVN-16920.
fonte
static/admin
dentrostatic/css/
, posso acessar os arquivos css. Parece que posso acessar os arquivos css apenas se estiverem dentro do,static/files
mas o collectstatic não os coloca lá. Claro, mover a pasta manualmente simplesmente não funciona porque os modelos continuam apontando parastatic/admin
.Também encontrei esse problema seguindo o tutorial do livro Django. No Capítulo 5 | Instalando o modelo, o livro afirma ao referir-se ao INSTALLED_APPS padrão- "Comente temporariamente todas as seis strings colocando um caractere hash (#) na frente delas." http://www.djangobook.com/en/2.0/chapter05.html
Então, no Capítulo 6, o Livro diz ao leitor para descomentar 4 dessas 6 linhas - "note que comentamos essas quatro entradas INSTALLED_APPS no Capítulo 5. Remova-os de comentários agora."
Mas a linha statcifiles é o que é necessário para restaurar o CSS para a página de administração, então descomente que 'django.contrib.staticfiles',
fonte
Eu li vários outros tópicos tentando corrigir isso ... recorri a um alias como em outros tópicos. Isso pressupõe que seu próprio aplicativo personalizado está exibindo arquivos estáticos corretamente, o que indicaria que seu STATIC_ROOT e STATIC_URL têm configurações adequadas.
STATIC_ROOT = '' STATIC_URL = '/static/'
Então (a partir do seu diretório 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 isso ajude alguém ... há muitos tópicos neste tópico. :(
fonte
Em
/project_name/project_name/settings.py
você precisa definirSTATIC_URL
para informar ao seu site qual url usar para arquivos estáticos.Em seguida, defina
STATIC_ROOT
como alguma pasta em seu sistema de arquivos que não seja igual a nenhum dos seus diretórios listados naSTATICFILES_DIRS
lista.Depois de
STATICFILES_ROOT
definido, você executaria apython manage.py collectstatic
partir do diretório do projeto.Isso copiará todos os arquivos estáticos do administrador e todos os arquivos em quaisquer outras pastas listadas na
STATICFILES_DIRS
lista. Basicamente, isso coloca todos os seus arquivos estáticos em um só lugar para que você possa movê-los para o seu CDN ao implantar o seu site. Se você é como eu e não tem um CDN, você tem duas opções:STATIC_ROOT
àSTATICFILES_DIRS
lista. Isso permitirá que os localizadores de arquivos estáticos no django localizem todos os arquivos estáticos.STATICFILES_DIRS
para incluir esse novo local.Não faço comentários sobre segurança com esta resposta, é apenas a maneira que pude desenvolver com meu servidor web para pequenos projetos. Espero que você queira um CDN como o django sugere se estiver fazendo algo em escala maior.
ATUALIZAÇÃO: Acabei de encontrar esse problema e esse método não fez exatamente o que eu acho que você deseja. O que acabou funcionando para mim foi, depois de executar
collectstatic
, apenas copiar os arquivos estáticos do administrador que ele colocou noSTATICFILES_ROOT
diretório que usei para meus próprios arquivos estáticos. Isso resolveu o problema para mim.fonte
Além de muitas das outras respostas serem úteis, tive um problema que ainda não foi observado. Depois de atualizar do Django 1.3 para 1.6, meu diretório de arquivos estáticos tinha um link simbólico quebrado para os arquivos estáticos do administrador django.
Meu settings.py foi configurado com:
STATICFILES_DIRS = ( '/var/www/static/my-dev', )
De acordo com esta resposta ,
Eu tinha um link simbólico
/var/www/static/my-dev/admin
que foi definido como:admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/
Esse local não existe mais no Django 1.6, então atualizei o link para:
admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/
E agora meu site de administração está funcionando corretamente.
fonte
Se você estiver usando o servidor Apache para hospedar seu site django, você precisa ter certeza de que o alias estático aponta para seu diretório / para site / site_media / static /. Se seus arquivos estáticos estiverem em / diretório para site / site / site_media / static /, a configuração anterior do alias do Apache não funcionará.
fonte
Enquanto seguia o tutorial do Django, tive um problema semelhante e, no meu caso, o problema era o tipo MIME usado pelo servidor de desenvolvimento ao servir arquivos css.
O tipo MIME veiculado foi 'application / x-css' que levou à seguinte mensagem de aviso no Chrome (na guia 'Rede' das ferramentas do desenvolvedor):
A solução alternativa que encontrei: alterar o tipo MIME a ser servido adicionando as seguintes linhas ao arquivo manage.py do django webapp:
import mimetypes mimetypes.init() mimetypes.types_map['.css'] = 'text/css'
Nota: funcionou para mim com Django 1.7.4 no Python 2.7 e Chrome 40.0
fonte
Content-Type: text/plain
e não estão sendo renderizados na página.O mesmo tipo de problema que encontrei ao desenvolver um site em django-1.10.5 e python-2.7.13. Mas no meu firefox-51 e no Chrome, a página de login foi capaz de obter o css, mas ainda não havia estilo. Mas, estranhamente, estava funcionando no IE-8.
Tentei fazer todas as coisas possíveis mencionadas aqui e adequadas ao meu conjunto de versões sw. Nenhum funcionou.
Mas quando tentei o mesmo site em outro sistema que tinha o python-2.7.8, funcionou ..
Acabei de postar se pode ajudar alguém ...
editado: mais tarde descobri que em python-2.7.13, escrever as duas linhas a seguir em settings.py (além de limpar o cache do navegador) tinha resolvido o problema
import mimetypes mimetypes.add_type("text/css", ".css", True)
fonte
Meu problema foi resolvido criando um novo ambiente virtual para o projeto, antes disso eu estava usando o interpretador python de nível de sistema geral.
Referência: https://docs.djangoproject.com/en/2.1/howto/windows/
fonte
Certifique-se de que
'django.contrib.staticfiles'
estáINSTALLED_APPS
em seu settings.pyfonte
corre:
python manage.py collectstatic
Adicione esta linha ao Vhost, localizado em: /etc/apache2/sites-available/000-default.conf
Aqui está toda a configuração do Vhost para a configuração do Django
<VirtualHost *:80> ServerName gautam.tech ServerAlias www.gautam.tech WSGIDaemonProcess gautam.tech python-path=/var/www/html/gautam.tech python-home=/var/www/html/gautam.tech/venv WSGIProcessGroup gautam.tech #Your static files location Alias /static /var/www/html/gautam.tech/static Alias /media/ /var/www/html/gautam.tech/media Alias /static/admin/ /var/www/html/gautam.tech/static/admin <Directory /var/www/html/gautam.tech/static> Require all granted </Directory> <Directory /var/www/html/gautam.tech/media> Require all granted </Directory> WSGIScriptAlias / /var/www/html/gautam.tech/myproject/wsgi.py DocumentRoot /var/www/html/gautam.tech <Directory /var/www/html/gautam.tech> <Files wsgi.py> Require all granted </Files> </Directory> CustomLog /var/www/html/gautam.tech/access.log combined ErrorLog /var/www/html/gautam.tech/error.log </VirtualHost>
Isso vai funcionar com certeza!
fonte
Se o problema estiver em um servidor dev / test / prod e usando Nginx, siga as etapas abaixo.
defina as configurações em settings.py como algo abaixo
STATIC_URL = '/static/' BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) STATIC_ROOT = os.path.join(BASE_DIR, 'static')
Execute o comando abaixo para criar arquivos css e js na pasta estática
$ python manage.py collectstatic
config em / etc / nginx / sites-enabled / example (Nginx) para servir arquivos estáticos
location /static/ { alias /project/root/folder/static/; }
fonte
isso funciona bem e facilmente. Mudei (manualmente) a pasta. apenas você tem que copiar seu
static/admin
do diretório do projeto principal e colá-lo em public_htmlstatic/
se não houver uma pasta estática você deve executar o seguinte comando no terminalpython manage.py collectstatic
aqui vai com o css funcionando do Django admin
fonte
Se você tiver um valor definido em settings.py para STATICFILES_DIRS e a pasta declarada não existir ou estiver em um local errado, isso fará com que o Admin não tenha nenhum estilo, por exemplo, definindo STATICFILES_DIRS = (os.path.join (BASE_DIR, "estático" )) e a pasta estática não existe
fonte
Falhando depois de tentar milhares de sugestões, finalmente encontrei uma solução que ajudou. Aqui está o que experimentei e o que estava usando. Estou usando o servidor web django-1.11 e nginx. Em primeiro lugar, certifiquei-me de que meus arquivos CSS / js não estavam obtendo 404 no console do navegador. Depois disso, pude ver um aviso
Encontrei o base.html nos modelos de administração e removi
type="text/css"
e agora as linhas se parecem com isto:
<link rel="stylesheet" href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" />
Isso resolveu o problema para mim.
fonte
Configurando arquivos estáticos Certifique-se de que
django.contrib.staticfiles
está incluído em seu INSTALLED_APPS .Em seu arquivo settings.py, defina STATIC_URL, por exemplo:
STATIC_URL = '/static/'
para mais detalhes de arquivos estáticos
fonte
O painel do administrador estava funcionando bem, exceto que o css não foi carregado. Isso funcionou para Lightsail Django com Apache
1. Defina STATIC_ROOT e STATIC_URL em
settings.py
STATIC_ROOT = '/opt/bitnami/projects/decisions/decision/' STATIC_URL = '/static/'
2. Ejetar (copiar) arquivos de ativos de administração para o projeto
executar
python manage.py collectstatic
este comando cria uma/opt/bitnami/projects/decisions/decision/admin
pasta comcss/
fonts/
img/
js/
subpastas3. Faça / url estático acessível a partir do Apache
Cole este snippet em
/opt/bitnami/apache2/conf/bitnami/bitnami.conf
(se você configurou SSL, o local do arquivo será/opt/bitnami/apache2/conf/bitnami/bitnami-ssl.conf
)Alias /static/ "/opt/bitnami/projects/decisions/decision/" <Directory "/opt/bitnami/projects/decisions/decision/"> Order allow,deny Options Indexes Allow from all IndexOptions FancyIndexing </Directory>
4. Não se esqueça de reiniciar o apache
sudo /opt/bitnami/ctlscript.sh restart apache
fonte