почему мой сайт администратора django не имеет стиля css



Я делаю сайт администратора django с помощью версия разработки django



но у него нет стиля css:



alt text



что я могу сделать .



спасибо

1433   14  

14 ответов:

Django не обслуживает статические файлы самостоятельно. Вы должны сказать ему, где находятся файлы.

The ADMIN_MEDIA_PREFIX в settings.py укажет Джанго в нужном месте.

Так как вы используете версию разработки, вы хотите dev-специфический документ для статических файлов how-to. Ссылка Адама приведет вас к версии 1.2.

после настройки STATIC_ROOT и STATIC_URL, возможно, вам придется запустить

python manage.py collectstatic

ADMIN_MEDIA_PREFIX теперь устарело, используйте . Установка STATIC_URL = '/static/' in settings.py надо делать свою работу. Попробуйте:

import os.path  import sys

PROJECT_ROOT = os.path.normpath(os.path.dirname(__file__))

и затем:

STATIC_ROOT = os.path.join(PROJECT_ROOT, 'static')
STATIC_URL = '/static/'

работает на Django 1.4 pre-alpha SVN-16920.

Я столкнулся с этой проблемой, а также после учебника книги Django. В главе 5 / Установка модели в книге указано, что при обращении к INSTALLED_APPS по умолчанию- "Временно закомментируйте все шесть этих строк, поставив перед ними хэш-символ ( # )." http://www.djangobook.com/en/2.0/chapter05.html

затем, в главе 6, книга говорит читателю раскомментировать 4 из этих 6 строк- "обратите внимание, что мы прокомментировали эти четыре записи INSTALLED_APPS в главе 5. Раскомментируйте их сейчас."

но строка statcifiles-это то, что необходимо для восстановления CSS на странице администратора, поэтому раскомментируйте это - Джанго.ВНО.staticfiles',

Я прочитал несколько других потоков, пытаясь исправить это...прибегал к псевдониму, как и в других потоках. Это предполагает, что ваше собственное пользовательское приложение правильно обслуживает статические файлы, что указывает на то, что ваши STATIC_ROOT и STATIC_URL имеют правильные настройки.

STATIC_ROOT = ''
STATIC_URL = '/static/'

затем (из вашего статического каталога):

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

надеюсь, это кому-то поможет...есть много тем на эту тему. : (

на /project_name/project_name/settings.py необходимо указать STATIC_URL чтобы сообщить вашему сайту, какой url использовать для статических файлов.

затем установить STATIC_ROOT быть какой-то папкой в вашей файловой системе, которая не совпадает ни с одним из ваших каталогов, перечисленных в STATICFILES_DIRS список.

один раз STATICFILES_ROOT установлен, вы бы запустить python manage.py collectstatic из каталога проекта.

это скопирует все статические файлы администратора и все файлы в любых других папках, перечисленных в STATICFILES_DIRS список. В основном это ставит все ваши статические файлы в одном месте, так что вы можете переместить их в CDN при развертывании сайта. Если вы похожи на меня и не есть КДС, то у вас есть два варианта:

  1. добавьте папку, которую вы установили как STATIC_ROOT до STATICFILES_DIRS список. Это позволит поисковикам staticfiles в django найти все статические файлы.
  2. переместите всю папку статических файлов в другое место в вашей файловой системе и направьте STATICFILES_DIRS включить новое место.

I не комментируйте безопасность с этим ответом, это просто способ, которым я смог разработать свой веб-сервер для небольших проектов. Я ожидаю, что вы захотите CDN, как предлагает django, если вы делаете что-то более масштабное.

обновление: Я просто столкнулся с этой проблемой и этот способ не совсем то, что я думаю, что вы хотите. Что в конечном итоге работает для меня после того, как я побежал collectstatic я просто скопировал статические файлы администратора, которые он поместил в STATICFILES_ROOT в каталог, который я использовал для моего собственные статические файлы. Это решило проблему для меня.

Если вы используете сервер Apache для размещения вашего сайта django, вам нужно убедиться, что статический псевдоним указывает на ваш /каталог на сайт/site_media/static/. Если ваши статические файлы находятся в Каталоге / для сайта / site/site_media/ static/, предыдущая конфигурация псевдонима Apache не будет работать.

обеспечить 'django.contrib.staticfiles' в своем INSTALLED_APPS в вашем settings.py

в дополнение ко многим другим полезным ответам, у меня была проблема, которая еще не была замечена. После обновления с Django 1.3 до 1.6 в моем каталоге статических файлов была сломана символическая ссылка на статические файлы администратора django.

мой settings.py был настроен с:

STATICFILES_DIRS = (
    '/var/www/static/my-dev',
)

по данным ответ,

Django теперь будет ожидать, чтобы найти статические файлы администратора под URL /администратор./

I была символическая ссылка /var/www/static/my-dev/admin, который был установлен в:

admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/media/

это место больше не существует в django 1.6, поэтому я обновил ссылку:

admin -> /usr/local/lib/python2.7/dist-packages/django/contrib/admin/static/admin/

и теперь мой админ работает правильно.

следуя учебнику Django, у меня была аналогичная проблема, и в моем случае проблема заключалась в mimetype, используемом сервером разработки при обслуживании файлов css.

обслуживаемый тип mimetype был "application/x-css", что привело к следующему предупреждающему сообщению в Chrome (на вкладке "Сеть" инструментов разработчика):

ресурс интерпретируется как таблица стилей, но передается с типом MIME приложение / x-css: "http://127.0.0.1:8000/static/admin/css/base.css"

обходной путь, который я нашел: изменение типа mimetype для обслуживания путем добавления следующих строк в веб-приложение django manage.py файл:

import mimetypes
mimetypes.init()
mimetypes.types_map['.css'] = 'text/css'

Примечание: работал для меня с Django 1.7.4 на Python 2.7 и Chrome 40.0

такая же проблема, с которой я столкнулся при разработке сайта в django-1.10.5 и python-2.7.13. Но в моем firefox-51 и chrome страница входа в систему смогла получить css, но все еще не было стиля. Но странно это работало на IE-8..

Я попытался сделать все возможное, что упоминается здесь и подходит для моего набора версий sw. Никто не работал.

но когда я попробовал тот же сайт на другой системе которая питон-2.7.8, это сработало..

просто опубликовано, если это может помочь кому-то...

отредактировано: позже я обнаружил, что в python-2.7.13, написав следующие две строки settings.py (плюс очистка кэша браузера) сделал трюк

import mimetypes
mimetypes.add_type("text/css", ".css", True)

Если у вас есть значение, установленное в settings.py для STATICFILES_DIRS и объявленной папки не существует или в неправильном месте это приведет к тому, что у администратора не будет стиля например определяя STATICFILES_DIRS = (os.путь.join(BASE_DIR, " static")) и статическая папка не существует

потерпев неудачу после попытки 1000 предложений, я, наконец, нашел решение, которое помогло. Вот что я пробовал и что я использовал. Я использую django-1.11 и веб-сервер nginx. Во-первых, я убедился, что мои CSS/js файлы не получают 404 в консоли браузера. После этого я увидел предупреждение

ресурс интерпретируется как таблица стилей, но передается с типом MIME text / plain

Я нашел базу.html в шаблонах администратора и удалены

type="text/css"

и теперь выглядит так:

<link rel="stylesheet"  href="{% block stylesheet %}{% static "admin/css/base.css" %}{% endblock %}" /> 

это исправило проблему для меня.

моя проблема была решена путем создания новой виртуальной среды для проекта, до этого я использовал общий системный интерпретатор python.

$ mkvirtualenv myproject

Ссылка:https://docs.djangoproject.com/en/2.1/howto/windows/

Comments

    Ничего не найдено.