Производственные ресурсы Rails 3.1: большие файлы нарезаются на части - PullRequest
3 голосов
/ 09 ноября 2011

Поскольку я использую Rails 3.1 и конвейер ресурсов, у меня возникает большая проблема в рабочем режиме.

Когда я выполнял сборку exec rake assets: precompile, у меня были ошибки вроде

'myjsfile.js' имеет недопустимую последовательность байтов UTF-8

в частности с js-файлами плагина tiny_mce.

Итак, я сдался, так как все работало нормально на моем Mac, и я написал эту строку в файле production.rb: config.assets.compile = true

Поэтому файлы JS создаются без ошибок.

С другой стороны, существует большая проблема с длинными файлами, такими как jquery.js

Регулярно Rails генерирует только половину файла jQuery, и единственный способ временно решить проблему - это перейти по URL-адресу файла js (http://myapp.com/assets/jquery.js) и многократно обновлять страницу, а через некоторое время JQuery файл снова целиком. Затем, через несколько дней, проблема вернулась, и я должен сделать это снова.

Фактически, как будто во время компиляции больших файлов процесс остановился посередине и сервер отправил файл наполовину скомпилированным.

У некоторых из вас была эта проблема? Есть идеи откуда она взялась?

Я использую nginx и passenger на сервере Ubuntu для производства. Я никогда не сталкивался с этой проблемой на своем Mac.

Заранее благодарю за помощь!

1 Ответ

0 голосов
/ 08 мая 2013

Процесс предварительной компиляции завершится неудачей, если у вас не хватит памяти на вашем сервере. Попробуйте выполнить rake assets:precompile на своем Mac и зафиксировать сгенерированные ресурсы, чтобы вы могли получить их на своем сервере.

В долгосрочной перспективе для каждой успешной сборки запускайте прекомпиляцию на промежуточном сервере CI.

...