2015-07-09 3 views
0

Fast Пример,Rails компресс производство активов и интеграция

позволяет сказать, у меня есть этот JS файл, test.coffee

alert 'test!' 

моя цель состоит в том,

Я не хочу этот код, чтобы быть загружается в каждой странице

так я вручную включен, где я хочу,

<%= javascript_include_tag 'test'%> 

но трагедия происходит в производственном режиме,

test.coffee это не уменьшенная в рабочем режиме!

Я хочу, чтобы этот код был минитипирован, но он не должен интегрироваться и уменьшаться до application.js, потому что я не хочу, чтобы этот код загружался на всех страницах.

Как я могу решить эту дилемму?

ответ

0

У вас возникла эта проблема, поскольку по умолчанию рельсы не прекомпилируют файл с расширением coffee. Вы должны быть в состоянии решить эту проблему можно предваряя расширение .js поэтому файл должен выглядеть следующим образом:

test.js.coffee

Прямо с рельсами Документов

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

Примечание:

Там есть механизм в рельсах, что позволяет «впрыснуть» JavaScript во время выполнения.

Обычно вы должны указать yield :javascripts в своем макете приложения. и добавьте контент к этому выходу с помощью:

<% content_for :javascripts do %> 
    <%= script_tag :test %> # Content here will be yielded 
<% end %> 

Это позволяет определить ваш JavaScript в нижней части страницы при нагнетании страницы конкретных активов.

Смежные вопросы