Прекомпиляция загруженных ресурсов - PullRequest
0 голосов
/ 29 декабря 2011

У меня есть приложение rails 3.1, где пользователи загружают картинки.Я храню их в / assets / images, так как именно этот путь ищет image_tag вместо public / images.

Все отлично работает в разработке, но я развернул в Heroku, и это выдает мне эту ошибку:

ActionView :: Template :: Error (image_name.jpeg не прекомпилировано)

Как правильно обращаться с такой ситуацией?Есть ли способ компилировать изображения после загрузки или я должен хранить их где-нибудь еще?

Ответы [ 2 ]

2 голосов
/ 29 декабря 2011
  • Вы не должны использовать файловую систему Heroku для хранения загрузок.

  • Вы не должны использовать image_path с загруженными изображениями, так как это предполагает, что он смотрит на файловую систему. Если вы используете image_tag, вы должны передать полный URL, а не просто имя изображения.

1 голос
/ 29 декабря 2011

Используете ли вы carrierwave для загрузки изображений?Вы можете хранить их на Amazon S3 достаточно легко с несущей волной. Инструкции Carrierwave В других решениях также доступно хранилище S3.

Heroku НЕ позволит вам хранить файлы в файловой системе.Запустите

RAILS_ENV=production bundle exec rake assets:precompile

, чтобы скомпилировать ваши ресурсы локально, добавить в git и нажать на heroku, но вы не можете добавлять изображения позже через ваше приложение на heroku.Если вы загрузите их в папку /temp, они останутся там на короткое время или, пока я верю, что вы не развернете / обновите свой код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...