Я много раз пытался заставить ресурсы предварительно скомпилироваться на моем производственном сервере (простая установка Ubuntu с ruby 1.9.2 и Rails 3.1.1, и пробовал 3.1.2RC с новыми звездочками 2.10 также).
"Аргумент require_tree должен быть каталогом". Я видел другие проблемы, связанные с этим в стеке, но ситуация не совсем та же, и ни одно из предложенных решений не помогло - например, создать файл-заглушку в подпапке, а затем ссылаться только на этом этапе. Неудачно.
И в завершение, конечно, это прекрасно работает на всех машинах разработки (mac, но с одинаковыми конфигами, даже совпадающими с gem для gem), в рабочей среде
Вот мой /app/assets/javascript/application.js:
//= require ../../views/app/manifest
//= require_self
Не так много. По сути, просто указывает на настоящий файл манифеста для области приложения (да, не совсем ванильные Rails, но ...)
Вот мой манифест заглушки в моих представлениях / admin (/views/app/manifest.coffee.js):
# = require ./app
# = require_tree ./models
# = require_directory ./views <- or using require_directory, either would work fine.
Как я уже сказал, в dev env проблем нет вообще. Конвейер активов компилируется на лету, и все отлично. Запуск, грабли ресурсов: прекомпиляция на компьютере разработчика, никаких проблем тоже нет.
Я отправляю его на рабочий компьютер и запускаю точно такой же код, и получаю:
Аргумент require_tree должен быть каталогом
Должна быть какая-то крошечная разница, которую я просто не вижу. Любая помощь будет высоко ценится!