Почему ресурсы javascript для рельсов предварительно компилируются в процессе разработки?

У меня проблема с файлами js, которые компилируются в процессе разработки.

У меня есть файл application.js, который включает в себя несколько других файлов, например:

//=require_tree .

файлы в каталоге

app/assets/javascripts/user_row.coffee
app/assets/javascripts/index.coffee

Всякий раз, когда я вношу изменения в один из этих файлов, в каталоге app/assets/javascripts создается соответствующий файл js, поэтому я изменяю user_row.coffee и получаю:

app/assets/javascripts/user_row.js

Это в режиме разработки с конфигурацией активов по умолчанию (я не изменил development.rb из того, что создает генератор рельсов).

Если я снова изменю файл user_row.coffee, он будет проигнорирован, и уже существующий файл js будет включен в application.js.

Чего я не понимаю, так это почему эти файлы js создаются в каталоге app/assets/javascript, а не в tmp/cache/...

Любые идеи?


person Mina Smart    schedule 18.10.2012    source источник
comment
Какую команду вы используете для запуска сервера разработки?   -  person Andrew Hare    schedule 18.10.2012
comment
Что говорится в журнале разработки, касающемся файлов js? Он должен перечислять не только активы, которые он захватывает, но и те активы, которые он компилирует для запроса. Это может пролить свет на проблему.   -  person GorrillaMcD    schedule 19.10.2012
comment
Лог ничего не говорит. Файл создается после сохранения файла кофе перед обновлением любой страницы. Это происходит только тогда, когда сервер работает.   -  person Mina Smart    schedule 19.10.2012
comment
Когда я получаю доступ к Rails.application.config[:assets] через консоль, я вижу следующее: :cache_store => [ [0] :file_store, [1] "/Users/[...]/tmp/cache/assets/" ] что, на мой взгляд, должно храниться в tmp/cache/assets.... Я ошибаюсь?   -  person Mina Smart    schedule 20.10.2012


Ответы (2)


Вы должны называть файлы кофе name.js.coffee, а не просто name.coffee.

person GorrillaMcD    schedule 18.10.2012
comment
name.js.coffee был бы необходим, если бы они включались напрямую, а не внутри манифеста. Когда они включены в манифест, расширение манифеста определяет тип назначения. Добавление дополнительных .js приведет к созданию файла .js.js, а также к тому, что звездочки будут перебирать и анализировать файл в дополнительное время. - person Mina Smart; 18.10.2012

Это оказалось проблемой с узлами v0.8.9. Я использую узел в качестве среды выполнения javascript, и после обновления с версии 0.8.9 до версии 0.8.16 проблема исчезла.

person Mina Smart    schedule 26.12.2012