ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: модуль чтобы динамически отдавать несколько java-script/css файлов в одном bundle



Добрый день. Я сам интересовался решением похожей задачи в рассылке. Хочу кое-что уточнить. 

> у нас тоже есть
> программисты и формируется
> очень неплохая культура,
> когда в
> имя статики добавляется
> хеш или дата. и после этого
> отдавай хоть с каким
> Expire, никакого риска.

Непонятно, каким образом им создавать
бандлы в оффлайне или при переносе
изменений с тест-сервера, где они
постоянно обновляют свои файлы, на
рабочий сервер?   Как это технически
можно сделать быстро и
полу-или-полностью автоматически?  

Вы рассматриваете вариант:
Нажатие кнопки  на web-фронтенде  Continious Integration системы (напр., http://jenkins-ci.org/), которая
a) заберет последние коммиты с заданной ветки (git  /svn)
б) запустит какую-нибудь систему сборки файлов в бандлы (а-ля https://github.com/imegah/Haste)
с) добавит к бандлу (или индивидуальным файлам-библиотеки) версии, основываясь на  номере релиза. Поместит  их по 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

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru



--
Best regards,
     ~ Xasima ~
_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.