2015-07-13 3 views
1

По какой-то причине, когда я пытался обновить логотип своих веб-сайтов, изображение не появляется, когда я нажимаю его на Heroku, просто имя файла изображения в виде ссылки. Изображения кажутся точными локально. У меня есть файлы png, сохраненные в папке с изображениями под моими активами, поэтому это не проблема Heroku, которая не находит ее. Я видел post, похожий на это, но он действительно не ответил на мой вопрос. Так почему новый образ не появляется?Изображения не загружаются на rails heroku app

+0

Привет, Дэвид, я уже ответил на этот вопрос, вот ссылка http://stackoverflow.com/questions/20104005/where-does-heroku-store-uploaded-files-when-using-paperclip/20104359#20104359 – RSB

+0

Я не использую скрепку для бумаг или хостинг изображений. Я просто хочу изменить свой логотип. Надеюсь, мне не нужно получать Amazon s3 только для размещения одного изображения. Это немного смешно ... – DavidK

+0

Вы не можете сохранять изображения в Heroku динамически, только изображения объектов подаются – RSB

ответ

0

Если отображать изображения, как

<img src='src_of_your_image'> 

Это не будет работать, из-за asset pipeline, вы должны использовать image_path Helper

<%= image_path 'src_of_your_image' %> 

Image path помощник будет правильно оказать вам изображение даже в режиме производства, после того, как ваши изображения будут искажены с помощью пользовательского хэша.

1

Добавить это, чтобы показать прекомпилированное изображение. По умолчанию режим heroku - это production.So он должен отображать предварительно скомпилированные изображения. Когда изображение или активы предварительно скомпилированы. Он сжимает код, и изображение переименовывается, например: (image_42342j3n42b3n44234234.jpg), поэтому вам нужно показать это переименованное изображение. Таким образом, вам нужно добавить

config.assets.digest = true 

это к вашему production.rb

+0

Да, это, казалось, проблема. Спасибо вам. – DavidK

1

Это мой опыт: [рубин 2,30, рельсы 4.2.6]

следуя инструкции Heroku asset pipeline on rails 4

в config/application.rb добавить установку ниже

config.serve_static_assets = true # deprecated 

использование вместо

config.serve_static_files = true # Ok 


в Gemfile добавить

gem 'rails_12factor', group: :production 

тогда, как Heroku говорит, set ruby version in your Gemfile

gem ruby '2.3.0' 


Теперь вы можете обновить ваш зависимости бегущих

bundle install 


Затем вы должны адаптировать свой исходный код:

изменений image_tag "source_name" везде появляется без расширения

<link_to image_tag("icon") ... %> 

с изображением_tag "source_name" с расширениями (.png,.JPG или любой другой)

<link_to image_tag("icon.png") ...%> 

Вы не должны запускать
RAILS_ENV = производство рек активов: прекомпиляции
потому что Heroku делает это для вас во время развертывания.

... и теперь настало время для развертывания

git add <files modified> 
git commit -m "comments your commit" 
git push heroku <your branch> 

Это решило для меня ... Я надеюсь, что и для вас.

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