#ruby-on-rails #ruby-on-rails-3.1 #asset-pipeline
#ruby-on-rails #ruby-on-rails-3.1 #ресурс-конвейер
Вопрос:
Вот вся ошибка из rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
rake aborted!
bad URI(is not URI?):
Tasks: TOP => environment
Не так много, чтобы продолжать.
Комментарии:
1. Вы пробовали явно устанавливать переменную RAILS_ENV перед запуском команды? т.е.
RAILS_ENV=development rake assets:precompile
2. Я пробовал как с RAILS_ENV=production, так и без (я предполагал, что разработка будет по умолчанию, но я попробую это после работы).
3. Похоже, RAILS_ENV = разработка работает, а не работает
Ответ №1:
Оказалось, что это в основном ошибка пользователя и мое непонимание того, как вызываются файлы /environment . У меня был раздел для анализа переменной среды CLOUDANT_URL из Heroku, которая, конечно, недоступна на этапе предварительной компиляции. Это, вероятно, должно было быть более очевидным для меня.
Я переместил это в отдельный инициализатор, который содержит if Rails.env.production?
блок, обертывающий его. Я надеюсь, что это разумный способ справиться с этим.
Спасибо всем за вашу помощь.
Ответ №2:
Это сообщение, скорее всего, связано с тем, что у вас есть недопустимый символ в одном из путей или имен ваших ресурсов. Под незаконным я подразумеваю символ, который необходимо закодировать для использования в URL.
Я бы подумал, что Rails сделает это, но я не могу сказать наверняка, не вникая в код.
Посмотрите на такие вещи, как пробелы и расширенные символы в именах файлов, и посмотрите, решает ли их удаление проблему.
Вы можете использовать метод URI.encode(string)
для их кодирования, если это так.
Комментарии:
1. Ни один из файлов не имеет ничего нестандартного в именовании. Нет ли способа получить более конкретную ошибку?