> у нас тоже есть
> программисты и формируется
> очень неплохая культура,
> когда в
> имя статики добавляется
> хеш или дата. и после этого
> отдавай хоть с каким
> Expire, никакого риска.
Непонятно, каким образом им создавать
бандлы в оффлайне или при переносе
изменений с тест-сервера, где они
постоянно обновляют свои файлы, на
рабочий сервер? Как это технически
можно сделать быстро и
полу-или-полностью автоматически?
Вы рассматриваете вариант:
a) заберет последние коммиты с заданной ветки (git /svn)
с) добавит к бандлу (или индивидуальным файлам-библиотеки) версии, основываясь на номере релиза. Поместит их по SSH на nginx / CDN.
Программисты должны будут лишь нажать кнопку на веб-интерфейсе, или же подобная функциональность может быть стриггерована созданием нового тега (мержа) в release (master) ветке репозитория.
Мне всё-таки видится использование
http-concat наиболее подходящим для решения
такой задачи.
Мне кажется, бандлы с более-менее постоянным составом библиотек проще и стабильнее помещать как отдельные ресурсы на файловую систему.
В случае же, если у вас (как у фейсбука),
1) состав библиотек для каждого клиента - разный, скомпилированные (напр, с помощью closure) библиотеки все равно зависят друг от друга (lazy loading).
2) на клиенте находится js-module-manager, которые избирательно забирает обновленные библиотеки (сверяясь при этом с локальным HTML storage)
3) генерация большого числа разнообразных наборов бандлов не спасает, так как на каждом клиенте могут оставаться в HTML Storage / Cache или по логике - разные наборы библиотек, и вы при этом не можете позволить (из соображений производительности на клиенте) перезагрузить заново бандл.
- тогда, конечно, http-concat наиболее подходящее средство. Хорошо, если указанные вами проблемы будут решены.
Андрей
Posted at Nginx Forum: http://forum.nginx.org/read.php?21,222269,222339#msg-222339