Добрый день. Я сам интересовался решением похожей задачи в рассылке. Хочу кое-что уточнить. <div><div class="gmail_quote"><div><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div>
> у нас тоже есть<br>
> программисты и формируется<br>
> очень неплохая культура,<br>
> когда в<br>
> имя статики добавляется<br>
> хеш или дата. и после этого<br>
> отдавай хоть с каким<br>
> Expire, никакого риска.<br>
<br>
</div>Непонятно, каким образом им создавать<br>
бандлы в оффлайне или при переносе<br>
изменений с тест-сервера, где они<br>
постоянно обновляют свои файлы, на<br>
рабочий сервер? Как это технически<br>
можно сделать быстро и<br>
полу-или-полностью автоматически? </blockquote><div><br></div><div>Вы рассматриваете вариант:</div><div>Нажатие кнопки на web-фронтенде Continious Integration системы (напр., <a href="http://jenkins-ci.org/" target="_blank">http://jenkins-ci.org/</a>), которая</div>
<div>a) заберет последние коммиты с заданной ветки (git /svn)</div><div>б) запустит какую-нибудь систему сборки файлов в бандлы (а-ля <a href="https://github.com/imegah/Haste" target="_blank">https://github.com/imegah/Haste</a>)</div>
<div>
с) добавит к бандлу (или индивидуальным файлам-библиотеки) версии, основываясь на номере релиза. Поместит их по SSH на nginx / CDN. </div><div><br></div><div>Программисты должны будут лишь нажать кнопку на веб-интерфейсе, или же подобная функциональность может быть стриггерована созданием нового тега (мержа) в release (master) ветке репозитория. </div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Мне всё-таки видится использование<br>
http-concat наиболее подходящим для решения<br>
такой задачи.<br>
<br></blockquote><div><br></div><div>Мне кажется, бандлы с более-менее постоянным составом библиотек проще и стабильнее помещать как отдельные ресурсы на файловую систему. </div><div><br></div><div>В случае же, если у вас (как у фейсбука), </div>
<div>1) состав библиотек для каждого клиента - разный, скомпилированные (напр, с помощью closure) библиотеки все равно зависят друг от друга (lazy loading). </div><div>2) на клиенте находится js-module-manager, которые избирательно забирает обновленные библиотеки (сверяясь при этом с локальным HTML storage)</div>
<div>3) генерация большого числа разнообразных наборов бандлов не спасает, так как на каждом клиенте могут оставаться в HTML Storage / Cache или по логике - разные наборы библиотек, и вы при этом не можете позволить (из соображений производительности на клиенте) перезагрузить заново бандл. </div>
<div><br></div><div> - тогда, конечно, http-concat наиболее подходящее средство. Хорошо, если указанные вами проблемы будут решены. </div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Андрей<br>
<br>
Posted at Nginx Forum: <a href="http://forum.nginx.org/read.php?21,222269,222339#msg-222339" target="_blank">http://forum.nginx.org/read.php?21,222269,222339#msg-222339</a><br>
<div><div></div><div><br>
_______________________________________________<br>
nginx-ru mailing list<br>
<a href="mailto:nginx-ru@nginx.org" target="_blank">nginx-ru@nginx.org</a><br>
<a href="http://mailman.nginx.org/mailman/listinfo/nginx-ru" target="_blank">http://mailman.nginx.org/mailman/listinfo/nginx-ru</a></div></div></blockquote></div><br><br clear="all"><div><br></div>-- <br>Best regards,<br>
~ Xasima ~<br>
</div>