Уведомления

Группа в Telegram: @pythonsu

#1 Май 6, 2013 11:02:08

MikaMika
Зарегистрирован: 2012-11-07
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Выдача статики на продакшн сервере!

Привет.
У меня очень нубский вопрос, на который я к сожалению ответа не нашёл.
Зачем при деплое проекта на сервер делать:

python manage.py collectstatic
и собирать статику в определённую папку.
У меня сейчас на dev - сервере в проекте есть общая статика, что то типа:
-ProjectFolder
—-Project
——–static
——–img
——–css
———js
И в некоторых apps используется своя статика.
Разве нельзя всё это просто перенести на сервер?
Статика ведь остаётся в нужных местах, финдеры статики включены!
В чём тут подвох?

Отредактировано MikaMika (Май 6, 2013 11:03:21)

Офлайн

#2 Май 6, 2013 13:12:41

FishHook
От:
Зарегистрирован: 2011-01-08
Сообщения: 8312
Репутация: +  568  -
Профиль   Отправить e-mail  

Выдача статики на продакшн сервере!

На боевом сервере у Вас будет работать Апач, Нжинкс или еще какой-либо веб-сервер, который и будет (и должен) раздавать статику. Финдеры статики там работать не будут.



Офлайн

#3 Май 6, 2013 13:20:01

MikaMika
Зарегистрирован: 2012-11-07
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Выдача статики на продакшн сервере!

FishHook
На боевом сервере у Вас будет работать Апач, Нжинкс или еще какой-либо веб-сервер, который и будет (и должен) раздавать статику. Финдеры статики там работать не будут.
Спасибо!
А вот например, файлы шаблонов расширяющие основной, он ищет в моих app проекта на продакшене.
И я не делаю что то типа:
python manage.py collecttemplate
Получается не работают только финдеры статики, а вот:
TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    'django.template.loaders.app_directories.Loader',
#     'django.template.loaders.eggs.Loader',
)
работает всегда.
Я правильно понимаю?

Офлайн

#4 Май 6, 2013 15:11:54

newca9h
Зарегистрирован: 2012-05-28
Сообщения: 46
Репутация: +  3  -
Профиль   Отправить e-mail  

Выдача статики на продакшн сервере!

Здравствуйте! Для статики вам необходимо настроить htaccess на сервере. К примеру, вот статья на сей счет. Поиском шаблонов занимается сама Django.

Офлайн

#5 Май 7, 2013 10:18:14

MikaMika
Зарегистрирован: 2012-11-07
Сообщения: 51
Репутация: +  0  -
Профиль   Отправить e-mail  

Выдача статики на продакшн сервере!

FishHook
На боевом сервере у Вас будет работать Апач, Нжинкс или еще какой-либо веб-сервер, который и будет (и должен) раздавать статику. Финдеры статики там работать не будут.
Получается можно заставить работать и отдавать статику Django и на продакшене:
settings.py
DEBUG = False
TEMPLATE_DEBUG = DEBUG
urls.py
# Кажется мне, что на продакшене это будет слишком медленно?!
# Или нет?
if not settings.DEBUG:
    urlpatterns += patterns("django.views",
                            url(r"%s(?P<path>.*)$" % settings.STATIC_URL[1:],
                                "static.serve",
                                {"document_root": settings.STATIC_ROOT,
                                 'show_indexes': True, },
                                name='static_image'),
                            url(r"%s(?P<path>.*)$" % settings.MEDIA_URL[1:],
                                "static.serve",
                                {"document_root": settings.MEDIA_ROOT,
                                 'show_indexes': True, },
                                name='dynamic_image'),)
 
И в принципе не важно какой сервер будет работать.
Ведь можно сделать так?

Офлайн

#6 Май 8, 2013 07:17:09

barabansheg
От:
Зарегистрирован: 2011-10-16
Сообщения: 114
Репутация: +  2  -
Профиль   Отправить e-mail  

Выдача статики на продакшн сервере!

Сервер джанги расчитан только на разработку, более-менее среднюю нагрузку, мне кажется, он не выдержит. Может еще какие нюансы есть. Самому интересно :)



Fidonet. Nod 2:5034/10. Идет набор. Подробности в личку.
Мой блог

Отредактировано barabansheg (Май 8, 2013 07:17:27)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version