Как запретить Rails 3.2.2 создавать файл .js каждый раз, когда я меняю файл .coffee в каталоге assets / javascripts / - PullRequest
0 голосов
/ 02 апреля 2012

Каждый раз, когда я изменяю файл .coffee в режиме разработки, Rails создает соответствующий файл .js в том же каталоге / javascripts. В результате Rails заканчивает обработку обоих файлов и, следовательно, вместо того, чтобы запускать событие один раз, я заканчиваю получать это событие дважды. Я должен не забыть вручную удалить файл .js, чтобы получить правильное и ожидаемое поведение.

Мой вопрос: как я могу предотвратить Rails для генерации файла .js? Разве не предполагается компилировать файл .coffee в памяти в режиме разработки? когда я удаляю сгенерированный файл .js, я получаю правильное и ожидаемое поведение?

Спасибо.

Бхарат

1 Ответ

1 голос
/ 02 апреля 2012

Проверьте раздел <head> на вашей странице.Вы проверяете это, просматривая источник страницы при запуске приложения.Если вы сделаете это, я бы поспорил, что вы увидите один или несколько файлов .js, которые включены дважды.Убедитесь, что у вас нет ненужных javascript_include_tags где-то в ваших представлениях.

Если вы не изменили стандартные требования require в app/assets/javascripts/application.js, все файлы javascript, которые там находятся, автоматически включаются, пока ваш макет установленвключить их (что по умолчанию).

В частности, если у вас есть эта строка в вашем application.js:

//= require_tree .

или

//= require_directory .

Этоприведет к тому, что все файлы .js в каталоге app / assets / javascripts (и подкаталогах, если у вас есть require_tree) будут включены, если у вас на странице есть следующее:

<%= javascript_include_tag 'application' %>

Обычно это имеет местокак это будет в вашем макете по умолчанию (в app/views/layouts/application.html.erb).

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

Еще одна вещь, которую вы можете попробовать, это удалить включение из вашего макета, а затем просто включить файлы javascript вручную для каждого просмотра, используя javascript_include_tag.

...