Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Python: Веб-разработка и фреймворки > Не удается подключить css |
Автор: Anark1 1.7.2011, 20:20 | ||
Здравствуйте, не так давно начал разбираться с Django и сразу же начал сталкиваться с разного рода проблемами. Задача - подключить css. Делал все как тут (Basic usage): https://docs.djangoproject.com/en/dev/howto/static-files/ То есть, моя последовательность действий: В моем приложении создал папку static, в ней папку css, там файл style.css. django.contrib.staticfiles подключено. Затем пишу такой код:
и css не подключается. Никаких дополнительных манипуляций с параметрами я не делаю, потому как если я правильно понял, то все в моем случае дефолтно. Далее я не очень понимая смысла параметров STATIC_ROOT и STATIC_URL, сделал директорию static в корне проекта, прописал STATIC_ROOT, STATIC_URL, сделал collectstatic, все скопировалось чудесно. Но результата опять никакого, более того в конечном html коде вообще никаких изменений, то есть css/style.css и все. Еще не очень понятно, видел где-то в примерах, что и для css нужно прописывать маршрутизацию, но в джанго мануале этого нет. Подскажите пожалуйста в чем я не прав и заодно буду признателен за разъяснения насчет смысла маршрутизации в данном случае, а также смысл collectstatic. |
Автор: Anark1 1.7.2011, 21:08 |
Запилил явно через маршрутизацию. Хочется узнать можно ли иначе, а то как то это слишком, так подключать CSS. |
Автор: Stolzen 2.7.2011, 01:08 | ||||
В настройках добавляете путь к вашим static файлам
И затем путь до таких фалов в urlconf, чтобы правильно диспатчер отпрабатывал запросы к статике:
Флаг PRODUCTION нужен для индикации, находится ли сервер под управлением тестового веб-сервера или уже под apache/чем-нибудь-другим - ведь в production серверах есть возможность явно указывать путь к static файлам в конфигах. |
Автор: Anark1 2.7.2011, 12:51 |
Stolzen, спасибо. А можно уточнить смысл маршрутизации в данном случае. Если я захочу хранить свои статик файлы в нескольких подпапках. Например css и js. То есть можно добавить еще один маршрут, но это не совсем то. Если я правильно понимаю, то в данном случае все файлы должны храниться в одной папке. И еще ряд вопросов. 1. А можно раскидать статик файлы по разным папкам, прописать STATICFILES_DIRS, потом сделать collectstatic в одну папку и указать до нее путь, как Вы написали? 2. Интересуют комментарии по примеру с мануала джанго (ссылка в первом посте), там используется STATIC_URL. То есть как вообще вся эта схема работает, есть ли иные механизмы, как использовать STATIC_ROOT, STATIC_URL. 3. Я пока не очень сильно проникся джанго, не понимаю смысла скажем STATIC_ROOT и STATIC_URL, если последний принимает не кортеж, а лишь строку, почему нельзя сразу все вбить в STATIC_ROOT. Заранее спасибо. |
Автор: Anark1 2.7.2011, 15:00 |
Спасибо! Будем посмотреть. |
Автор: Anark1 2.7.2011, 15:57 | ||
Если интересно, такая тема. Прочитал в мануале (не понял почему ну да ладно), для того чтобы {{ STATIC_URL }} заработал, нужно обязательно передавать из представления в функцию render_to_response третьим параметром context_instance=RequestContext(request). Соответственно ставим STATIC_URL где лежат все статик файлы и можно подпапки и тогда происходит подстановка. Но все равно нужно прописывать маршрутизацию руками. Даже так. Прочитал у одного человека
Для меня не очень понятно, что это значит. То есть подразумевается на продакшн "в обход джанго", имеется ли ввиду какой-то хардкод или что. |
Автор: Stolzen 2.7.2011, 22:30 | ||||
Да, именно - если развертывать программу на боевом сервере, то лучше статику раздавать через сервер напрямую, а не отправлять запрос за статикой в джанго - намного быстрее страницы в таком случае загружаются. Как пример кусочка конфига для апача:
Сначала биндится статика, потом уже сам скрипт. Вообще часто советуют для раздачи статики использовать дополнительный сервер, типа nginx, лично пока не практиковал такого. |
Автор: damask 3.8.2011, 16:48 |
Вот небольшой мануал, который мне помог подключить статические файлы http://technovzor.com/webdev3805 |
Автор: gomer999999999 3.2.2013, 23:54 |
Добрый день. Предлагаем к рассмотрению и тестированию наш проект - Маркетер Плагин. Продвигаем его успешно во всем мире. Но только 27 января 2013 предоставили в Рунете к тестированию русифицированный плагин с русифицированным интерфейсом. Вся подробная информация наhttp://www.marketerplugin.ru/ Предлагаем протестировать наш плагин на только что русифицированном интерфейсеhttp://www.marketerplugin.ru/test_plagina. В двух словах: плагин предназначен для создания сайтов-визиток и страниц продаж. Ждем ваших комментариев, отзывов и критики. Так же будем рады видеть вас на наших страницах в соц сетях http://www.facebook.com/pages/Marketer-plugin/5288148.. http://vk.com/club46912629 Успехов и новых впечатлений. С уважением, Богдан |