Как обновить HTML-скрипт и ссылки на ссылки при совмещении файлов JavaScript и CSS? - PullRequest
0 голосов
/ 03 ноября 2010

Ссылка на несколько сайтов, объединяющая файлы JavaScript и CSS для повышения производительности веб-страницы, включая примеры использования сценариев сборки ANT для объединения файлов перед развертыванием.

Я выполнил поиск и не нашел информации о том, как автоматизировать обновление ссылок на эти файлы в HTML и других документах.Я стараюсь не взламывать что-то, склонное к ошибкам, и хочу учиться у других, у которых в прошлом были автоматизированные сборки.

Есть ли в дикой природе автоматизированные инструменты для выполнения этой задачи, которую я не вижу?Существуют ли рекомендуемые процессы для обновления скрипта и тегов ссылок в HTML?Могут ли эти решения быть интегрированы с ANT или аналогичными инструментами сборки?

Ответы [ 3 ]

1 голос
/ 03 ноября 2010

Вы правы, это отличный способ ускорить загрузку страницы. Он даже будет работать в сочетании с CDN, который рекомендовал другой автор.

Вот небольшой скрипт, который объединит несколько файлов в один для развертывания. Он поддерживает как JS, так и CSS, и даже «минимизирует» их, удаляя пробелы и т. Д. Просто подключите это к своим сценариям сборки и развертывания.

соковыжималка : http://cjohansen.no/en/ruby/juicer_a_css_and_javascript_packaging_tool

Что еще лучше, он будет следовать инструкциям импорта JS и CSS, поэтому вам нужно всего лишь указать свои HTML-файлы на файл загрузчика, и он будет работать как в разработке, так и в производстве. (Предполагается, что вы заменяете файл загрузчика объединенным файлом при развертывании.)

Существуют и другие, в том числе некоторые решения времени выполнения. Но, похоже, у вас все равно есть процесс сборки.

Что касается обновления HTML, если оно вам все еще нужно, поскольку автоматические развертывания очень популярны в мире Ruby, и вы можете найти некоторые автономные утилиты, которые помогут даже для неруби-проектов. (Как и выше) Метинкс лучше всего будет обрабатывать языком шаблонов вашего собственного проекта. (С идентификатором версии статического ресурса или чем-то подобным.)

Удачи, и дайте нам знать, что вы найдете.

1 голос
/ 03 ноября 2010

Там , конечно, , и это разумно.

Я нашел PHP-решение , не знаю, что этохорошо для вас, но если это не так, вы все равно можете прочитать его источник (это не сложно) и многому научиться.Решение работает следующим образом:

  1. Перепишите ваши запросы следующим образом: с css / main.css и css / skin.css до css / main.css, skin.css (конечно, вы можете поместить еще много).
  2. Используйте apache's mod_rewrite , чтобы перенаправить этот запрос в скрипт (в нашем случае объединить.файлы в один.
  3. Сценарий объединяет все файлы и отправляет объединенный файл.Затем он сохраняет его в папке кеша.
  4. В следующий раз он проверяет, есть ли обновленная версия кеша, и обслуживает ее.Если последнее время изменения файла изменилось, он отбрасывает кэш.

Решение прекрасно работает, и даже использует HTTP заголовки кэша и выплевывает [ETags] , что вы должны сделать в любом случае.

0 голосов
/ 03 ноября 2010

Я думаю, что вам действительно нужна сеть доставки контента CDN .

Подробнее об этом здесь

http://developer.yahoo.com/performance/rules.html

http://en.wikipedia.org/wiki/Content_delivery_network

...