2012-06-28 2 views
5

Когда я запустил bundle exec rake assets:precompile --trace, моя прекомпиляция завершилась неудачно, но я не вижу никакой конкретной причины для этого.не удалось скомпилировать rake assets

Смотрите эту Pastebin для моего выхода: http://pastebin.com/zggZyPyM

+0

У вас есть время выполнения javascript? На этой неделе я столкнулся с подобной ошибкой, пытаясь предварительно скомпилировать активы на виртуальной машине Linux. – Zajn

+1

Если предложение zajn не работает, вы должны проверить свой системный журнал. Прекомпиляция активов занимает много памяти (больше, чем «рельсы s»), и может быть возможно, что ОС из-за этого убивает процесс. – rubish

+0

Ах! @rubish Вы правы ... заканчивается память. – jasonlfunk

ответ

13

Прекомпиляция активов занимает много памяти. ~ = 400 МБ в моем случае. Возможно, ОС может убить процесс из-за чрезмерного использования памяти. Вы можете проверить syslog, чтобы убедиться, что это так.

Вы можете увеличить объем памяти вашего сервера, чтобы избежать ситуации. Если это невозможно, я бы предложил вам предварительно скомпилировать активы в вашей локальной системе, передать их на репо и развернуть на сервер. Таким образом, вам не придется собирать активы на вашем сервере. Однако вам может понадобиться изучить способы удаления ранее сгенерированных активов, а также автоматизировать процесс.

2

, но выпуск был решенI попытался установка узел.js первый. И затем, выполнив следующую команду bundle exec rake assets:precompile. Только тогда я не заметил ошибку.

Первоначально, я думал, что это из-за низкой памяти тоже. Убрал почти все запущенные приложения, но не смог найти решение. Кроме того, я открыл Ruby в качестве администратора. Не уверен, что это тоже помогло, но проблема была решена.

+0

Установка Node.js на windows исправила эту проблему для меня. FYI, эта [страница] (http://ajacevedo.com/2013/using-node-js-as-a-rails-javascript-runtime/) имеет хорошую информацию о настройке env для использования Node.js – konyak

+0

add bundle exec work для меня – Feuda

0

Эта проблема также может быть решена с использованием среды выполнения node.js JS для прекомпиляции активов, поскольку она, по-видимому, имеет меньшую площадь памяти. Для Ubunutu 14.04 мне нужно было запустить , а затем заменить стандартную js runtime в Gemfile на gem 'node', запустить bundle и, наконец, перезапустить прекомпиляцию. Я бы предостерег от предварительной компиляции в другом месте, поскольку вы можете забыть это сделать после изменения css или js, что приведет к ошибкам.

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