<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
			<channel>
			<title>Файлы js и css, а также прочие asset'ы – тонкости и нюансы работы с ними в Альто / Alto CMS inside - как это устроено и работает / Alto CMS</title>
			<link>http://79.174.14.219/comments/597/</link>
			<description><![CDATA[Я не знаю, как коротко и однозначно перевести с английского слово «assets». Но те, кто работают со всякого рода фреймворками]]></description>
			<language>ru</language>
			<managingEditor>noreply@altocms.ru</managingEditor>
			<webMaster>noreply@altocms.ru</webMaster>
			<generator>Alto CMS v.1.5.0b1</generator>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10297)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10297</guid>
					<link>http://79.174.14.219/597.html#comment10297</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[Применительно к вебдеву это обычно называется ресурсами.<br/>
<br/>
Кстати, если я изменю какой-либо файл, изменится ли путь к asset-у, в котором он состоит? Если да, то можно заставить браузер всегда брать файлы по этому пути из кэша — это сэкономит десятки запросов при каждом переходе по страницам:<br/>
<pre class="prettyprint"><code>&lt;IfModule mod_expires.c&gt;
ExpiresActive On
ExpiresDefault &quot;access plus 3 months&quot;
&lt;/IfModule&gt;
&lt;IfModule mod_headers.c&gt;
Header set Cache-Control &quot;max-age=7257600&quot;
&lt;/IfModule&gt;</code></pre>]]></description>
					<pubDate>Sun, 25 May 2014 17:02:06 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10298)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10298</guid>
					<link>http://79.174.14.219/597.html#comment10298</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[<blockquote>Кстати, если я изменю какой-либо файл, изменится ли путь к asset-у, в котором он состоит? </blockquote>Имя результирующего asset-файла строится на основе хеша имен файлов, которые входят в набор. Т.е. если изменится имя подключаемого файла, то изменится и имя asset'а. А если изменилось только содержимое, то ничего не меняется. Для этого и нужны опции принудительного обновления.]]></description>
					<pubDate>Sun, 25 May 2014 17:35:26 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10339)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10339</guid>
					<link>http://79.174.14.219/597.html#comment10339</link>
					<author>seigiard@gmail.com</author>
					<description><![CDATA[хеш от имени файлов + размеров + времени последнего обновления? или по скорости невыгодно, много раз ФС дергается?]]></description>
					<pubDate>Mon, 26 May 2014 16:00:38 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10366)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10366</guid>
					<link>http://79.174.14.219/597.html#comment10366</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[Была такая мысль. Но тормознулся именно из-за большого числа дерганий. Тут, наверное, лучше по другому пути пойти — если уж и дергать ФС, то сравнивать даты исходных файлов и результирующих и так определять, изменилось ли содержимое набора. Но при этом обязательно предусмотреть опцию, которая будет отключать это сравнение (Смарти примерно так работает с компилированными шаблонами).<br/>
<br/>
Тогда можно будет, с одной стороны, получить автообновление с опциами по умолчанию, а с другой — отключить лишние проверки на рабочем проекте, когда известно, что ничего не меняется]]></description>
					<pubDate>Mon, 26 May 2014 18:14:56 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10371)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10371</guid>
					<link>http://79.174.14.219/597.html#comment10371</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[Добавить просто к собранным ассетам хэши от исходного содержимого и Большую Красную Кнопку «очистить кэш», которая также будет автоматически нажиматься при включении/выключении плагинов. От инвалидации кэша на лету вы потеряете весь выигрыш в производительности.]]></description>
					<pubDate>Mon, 26 May 2014 18:24:44 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10398)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10398</guid>
					<link>http://79.174.14.219/597.html#comment10398</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[<blockquote>и Большую Красную Кнопку «очистить кэш», которая также будет автоматически нажиматься при включении/выключении плагинов</blockquote>А вот обе эти фичи есть уже сегодня]]></description>
					<pubDate>Tue, 27 May 2014 00:32:04 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10369)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10369</guid>
					<link>http://79.174.14.219/597.html#comment10369</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[Когда кэш включен, ФС вы дергать не сможете ни под каким видом — браузер будет брать уже собранные файлы. А когда он только собирается, торопиться особо некуда, и возможные проблемы от оптимизаций не стоят ускорения.]]></description>
					<pubDate>Mon, 26 May 2014 18:20:40 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10299)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10299</guid>
					<link>http://79.174.14.219/597.html#comment10299</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[Еще возможное улучшение — заранее архивировать asset-ы в gzip, чтобы это не приходилось каждый раз делать веб-серверу.]]></description>
					<pubDate>Sun, 25 May 2014 17:46:11 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10302)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10302</guid>
					<link>http://79.174.14.219/597.html#comment10302</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[Кстати, да, интересный совет. А на сервере для этого какие-то допнастройки нужны?]]></description>
					<pubDate>Sun, 25 May 2014 18:51:33 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10303)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10303</guid>
					<link>http://79.174.14.219/597.html#comment10303</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[Да, понадобится что-то типа такого в .htaccess:<br/>
<pre class="prettyprint"><code>&lt;FilesMatch &quot;\.(css|js|html)$&quot;&gt;
Header set Content-Encoding gzip
&lt;/FilesMatch&gt;</code></pre><br/>
Сделал <a href="http://altodev.ru/tests/gzip-test.zip" rel="nofollow">архив</a> с простым примером. У меня на хостинге он, правда, не завелся — для распаковки gzip браузерам (по крайней мере, chrome) требуется правильный Content-Length, а там фронтэндом стоит nginx, который его не указывает :( Так что по умолчанию эту оптимизацию включать нельзя.]]></description>
					<pubDate>Sun, 25 May 2014 19:52:21 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10304)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10304</guid>
					<link>http://79.174.14.219/597.html#comment10304</link>
					<author>markus1024@yandex.ru</author>
					<description><![CDATA[Я вам предлагаю узнать всю инфу по gzip и сделать предложение <a href="http://altocms.ru/profile/aVadim/" class="ls-user">aVadim</a> -у, каким образом это можно внедрить в Альто.]]></description>
					<pubDate>Sun, 25 May 2014 21:01:57 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10305)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10305</guid>
					<link>http://79.174.14.219/597.html#comment10305</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[У меня, прямо скажу, в очереди доработок для Alto конкретно эта даже не в первой десятке, т.к. лично мне она не особо нужна — у меня сейчас вообще нет своих сайтов, а разгрузка gzip нужна только для высоконагруженных проектов. Да и в систему asset-ов я еще толком не вникал, не мне ее улучшать. Почему бы этим не заняться вам? :)]]></description>
					<pubDate>Sun, 25 May 2014 21:15:11 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10306)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10306</guid>
					<link>http://79.174.14.219/597.html#comment10306</link>
					<author>markus1024@yandex.ru</author>
					<description><![CDATA[Ну я просто слышал про gzip, что это типа круто и быстро — но еще никогда с этим не работал. А тут речь зашла за это — поэтому и предложил. Если честно, мне пока с miniMarket-ом работы хватает :)]]></description>
					<pubDate>Sun, 25 May 2014 21:19:05 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10300)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10300</guid>
					<link>http://79.174.14.219/597.html#comment10300</link>
					<author>markus1024@yandex.ru</author>
					<description><![CDATA[<strong>1.</strong> <blockquote>Если встречается несколько файлов пусть и с разными путями, но с одинаковым значением name, то подключен будет только первый из них.</blockquote>Может, более логичней было-бы подключать не первый, а последний встречающийся файл, если есть несколько с одинаковыми именами?<br/>
<br/>
<strong>2.</strong> <blockquote>При объединении файлов может использоваться сжатие (минификация) – удаление лишних пробелов, переводов строк, комментариев и т.д.</blockquote>А можно более подробно о том, как должны быть оформлены комментарии, что бы в процессе сжатия они были вырезаны?<br/>
<br/>
<strong>3.</strong> Можно еще в статье указать о возможности подключения js/css файлов из PHP кода, непосредственно в экшене.]]></description>
					<pubDate>Sun, 25 May 2014 17:59:51 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10301)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10301</guid>
					<link>http://79.174.14.219/597.html#comment10301</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[<blockquote>Может, более логичней было-бы подключать не первый, а последний встречающийся файл, если есть несколько с одинаковыми именами?</blockquote>Основное предназначение — избежать дублей, поэтому и логика такая: если уже есть, то не трогаем. Плюс такой еще нюанс: как писал выше, имя результирующего asset-файла строится на основе хеша массива полных имен файлов набора. Поэтому, если есть возможность не менять состав набора — лучше не менять, чтоб не перестраивать результирующий ассет.<br/>
<br/>
Но иногда замена может явно потребоваться. Для этого есть доп.параметр <strong>replace</strong> (забыл про него в статье написать, сейчас добавил). Если его указать, то предыдущий файл в наборе с таким именем будет заменен.<br/>
<br/>
<blockquote>А можно более подробно о том, как должны быть оформлены комментарии, что бы в процессе сжатия они были вырезаны?</blockquote>Врать не буду — не знаю, надо смотреть. Для минификации используются CSSTidy и JSMin, поэтому надо там копать. Кстати, возможно, сегодня это не лучшие библиотеки в своем классе, не исследовал, а просто взял, как есть, поэтому если кто-то подскажет варианты получше, то в последующих версиях движка можно будет их заменить.<br/>
<br/>
<blockquote>3. Можно еще в статье указать о возможности подключения js/css файлов из PHP кода, непосредственно в экшене</blockquote>Да, упустил этот момент. Я посмотрю, либо сюда добавлю, либо, если объем большой получится, отдельной статьей расскажу.]]></description>
					<pubDate>Sun, 25 May 2014 18:49:44 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10340)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10340</guid>
					<link>http://79.174.14.219/597.html#comment10340</link>
					<author>seigiard@gmail.com</author>
					<description><![CDATA[Вадим, можно посмотреть, как работают профессионалы на <a href="http://mun.ee/" rel="nofollow">mun.ee/</a><br/>
ну или просто использовать эту библиотеку.]]></description>
					<pubDate>Mon, 26 May 2014 16:02:09 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10364)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10364</guid>
					<link>http://79.174.14.219/597.html#comment10364</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[Они не профессионалы, и использовать эту библиотеку не надо.]]></description>
					<pubDate>Mon, 26 May 2014 18:10:15 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10365)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10365</guid>
					<link>http://79.174.14.219/597.html#comment10365</link>
					<author>seigiard@gmail.com</author>
					<description><![CDATA[а почему? есть какие-то реальные факты?<br/>
практический интерес, сам планировал поковырять эту разработку.]]></description>
					<pubDate>Mon, 26 May 2014 18:11:54 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10373)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10373</guid>
					<link>http://79.174.14.219/597.html#comment10373</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[Сама идея этой библиотеки порочна: вместо того, чтобы сохранять ассеты в доступной по вебу папке, она требует на каждое подключение ассетов дергать её php-файл (+0.5мб расхода памяти на запрос МИНИМУМ). Этим она берет на себя функции веб-сервера, и выполняет их из рук вон плохо: не поддерживает докачку при обрыве, делает совершенно невозможным снижение числа запросов способом, предложенным мною выше, не дают серверу использовать кэширование файлов в памяти. Да ещё и gzip делает исключительно на лету :)<br/>
<br/>
А программистов я считаю просто восторженной пионерией — они напихали в код модные молодёжные паттерны, написав в три раза больше кода, чем нужно, сделали наитупейшие архитектурные ошибки типа двухфазной инициализации, и при этом у них не предусмотрен элементарнейший вариант, что обрабатываемый скрипт/картинка/etc не лежит в готовом виде в файловой системе. Не завидую их работодателю.]]></description>
					<pubDate>Mon, 26 May 2014 18:46:38 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10374)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10374</guid>
					<link>http://79.174.14.219/597.html#comment10374</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[Ах да, иллюстрация. Адов ужас, я считаю:<br/>
<pre class="prettyprint"><code>class HeaderSetter
{
    public function statusCode($protocol, $code, $message)
    {
        header(&quot;{$protocol} {$code} {$message}&quot;);
        return $this;
    }

    public function headerField($field, $value)
    {
        header(&quot;{$field}: {$value}&quot;);
        return $this;
    }
}</code></pre>]]></description>
					<pubDate>Mon, 26 May 2014 18:50:04 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10380)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10380</guid>
					<link>http://79.174.14.219/597.html#comment10380</link>
					<author>seigiard@gmail.com</author>
					<description><![CDATA[спс, значит не имеет смысла даже трогать<br/>
<br/>
я такую поделку (заменим сервер, сожмем, отдадим) лет 10 назад велосипедил для своих ЦМСок]]></description>
					<pubDate>Mon, 26 May 2014 19:12:00 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10382)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10382</guid>
					<link>http://79.174.14.219/597.html#comment10382</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[Аналогично, только года на два попозже вас :) Не думаю, что найдется много стоящих веб-программистов, у которых хотя бы идеи такой не возникало.<br/>
<br/>
Вообще, сейчас странные вещи в мире вебдева творятся — почему-то теперь даже для самых примитивных библиотек авторы считают нужным выделить отдельный сайт, создать фан-клуб и наладить выпуск футболок с символикой. Да и с кодом какая-то чертовщина — там, где можно обойтись одним файлом, они делают DI и десяток классов по два метода (и еще дюжину пустых классов, с именами, заканчивающимися на Exception) в отдельных файлах. Раньше тоже высокомерно относился к старикам, а теперь вот сам стал ужас как консервативен.]]></description>
					<pubDate>Mon, 26 May 2014 19:28:02 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10383)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10383</guid>
					<link>http://79.174.14.219/597.html#comment10383</link>
					<author>seigiard@gmail.com</author>
					<description><![CDATA[я думал это я один такой недовольный!]]></description>
					<pubDate>Mon, 26 May 2014 19:32:30 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10385)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10385</guid>
					<link>http://79.174.14.219/597.html#comment10385</link>
					<author>sentient@lenta.ru</author>
					<description><![CDATA[А нас много, недовольных. Я думаю, что в той или иной мере недовольно все поколение, начавшее программировать в 2003-2007 годах. Просто я когда-то прочитал статью Спольски <a href="http://www.joelonsoftware.com/articles/fog0000000339.html" rel="nofollow">«Огонь и движение»</a> и примерил ее на себя, и теперь не считаю себя неправым только на том основании, что я в меньшинстве.]]></description>
					<pubDate>Mon, 26 May 2014 19:49:24 +0400</pubDate>
									</item>
							<item>
					<title>Файлы js и css, а также прочие asset&#039;ы – тонкости и нюансы работы с ними в Альто (comment #10363)</title>
					<guid isPermaLink="true">http://79.174.14.219/t/597/#comment10363</guid>
					<link>http://79.174.14.219/597.html#comment10363</link>
					<author>vshemarov@gmail.com</author>
					<description><![CDATA[Решил отдельной статьей выложить, т.к. «внезапно» оказалось, что много чего еще можно про это написать :)<br/>
<a href="http://altocms.ru/blog/inside/600.html" rel="nofollow">altocms.ru/blog/inside/600.html</a>]]></description>
					<pubDate>Mon, 26 May 2014 18:06:52 +0400</pubDate>
									</item>
					</channel>
	</rss>
