В прекомпиляции активов отсутствует автономный javascript / css

У меня непонятное ощущение, что я упускаю что-то очевидное:

Я запустил

RAILS_ENV = production bundle exec rake assets: precompile

, чтобы предварительно скомпилировать мои активы перед тем, как нажимать в Heroku. Просмотр / public / assets показывает, что application.js и application.css успешно скомпилированы, но ни один из моих автономных файлов не скомпилирован :

admin.js.coffee
blog.js.coffee.erb
[ ... several more similarly named ... ]
twitter.js.coffee.erb

и

admin.css.less
home.css.less
public.css.less

отсутствуют в / public / assets .

Я думал, что Rails предварительно скомпилирует application.js /.css, а также все остальное, что не заканчивается на js / css:

Средство сопоставления по умолчанию для компиляции файлов включает application.js, application.css и все файлы, не заканчивающиеся на js или css:

  [/\w+\.(?!js|css).+/, /application.(css|js)$/]

от: http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets

Я не хочу вручную обновлять config.assets.precompile каждые время изменения имени файла ресурса. Мне не хватает чего-то, что заставит Rails предварительно компилировать эти ресурсы?

Обновление

На основании ответа @Richard Hulse, приведенного ниже, я протестировал это, создав отдельный файл манифеста для автономного ресурса (т.е. я переименовал twitter. js.coffee.erb в twitter-include.js.coffee.erb и добавил twitter.js с одним // = require втягиванием переименованный оригинал). Кажется, это работает.

Должен быть более чистый способ, чем этот , и он кажется противоречит руководству Rails , цитируемому выше. В руководстве говорится, что единственные файлы, которые не будут компилироваться, - это файлы .js или .css , но не с именем application . Я вижу, что только .js или .css компилируются напрямую (т.е. не через манифест) - ничего больше.

6
задан Dave W. 30 December 2011 в 22:45
поделиться