Rails Asset Pipeline: прекомпилировать активы вне манифеста? - PullRequest
3 голосов
/ 16 сентября 2011

У меня есть определенные js и css файлы для конкретной страницы, которые я либо:

  1. Не хочу работать в процессе разработки (т.е. код отслеживания)
  2. Не хочу работать на каждой странице

или оба.

В Rails 3.0.x я бы просто назвал их с точки зрения, где они нужны, вот так:

- if some_condition
  = javascript_include_tag 'page_specific'

Теперь, используя конвейер ресурсов, похоже, что я должен включить их в манифест (и, следовательно, на каждую страницу приложения), иначе они не будут предварительно скомпилированы. Так как я использую Heroku для развертывания, ленивая компиляция не возможна.

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

1 Ответ

3 голосов
/ 16 сентября 2011

Просто не помещайте ресурс, специфичный для страницы, в манифест и включайте их, когда вам это нужно, как это было в rails 3.0.x, прекомпилятор скомпилирует эти страницы как отдельные файлы.

Лично я просто проверяю наличие определенного элемента в домене на этой странице. Если элемент не найден, остальная часть кода не выполняется.

$(function(){
   if( $("#page_specific_element").length !== 1 ) return;
   //page specific functions
});
...