2013-04-19 3 views
0

Мои изображения, прикрепленные с помощью Paperclip, отображаются нормально в среде разработки, но в процессе производства они отображаются сломанными, я проверил, что URL-адрес для изображений одинаковый для обоих:Rails Изображения скрепки не отображаются в продукции

<img alt="Badminton" class="img-rounded" src="/system/sports/images/000/000/012/small/badminton.jpg?1365944689" /> 

Я использую Paperclip 3.0.4 и используя SQLite в разработке и PostgreSQL в производстве, что я делаю неправильно?

Хорошо, я проверил еще раз, и у меня нет одинакового URL-адреса для изображений в разработке, чем в производстве. В развитии моего изображения:

src="/system/sports/images/000/000/012/small/badminton.jpg?1365944689" 

И производство:

src="/system/sports/images/000/000/012/small/badminton.jpg?1366328860" 

В производстве при попытке открыть изображение с URL развития он показывает правильно.

Что здесь происходит? почему меняется число в конце URL-адреса изображений от разработки до производства?

+0

Возможно, проблема разрешения на производстве? –

+0

Я запускаю его в локальном режиме и могу получить доступ к изображениям с производства, используя графический url от разработки, проверьте мои настройки, пожалуйста, –

ответ

1

Вы получаете тот же адрес! Это число на конце не является частью пути изображения, его используется для кэширования ... игнорируйте его (в отношении этого вопроса).

Ваш производственный URL-адрес ищет изображение в вашей системе. Это не может быть.

Кто ваш хозяин? Многие хосты (включая Heroku, если это то, что вы используете) не предлагают возможность загрузки имиджевых активов. Вы должны использовать отдельный сервис, например, хранилище Amazon S3. Его легко и дешево.

+0

Но я запускаю его в своем Mac не на хостинге, а на производстве, если я пытаюсь получить доступ к изображению, изменяя число в конце для числа одного и того же изображения в процессе разработки, так что я должен сделать, чтобы это работало в производстве ?. И спасибо за совет о том, что я хожу, чтобы развернуть его в Хероку, теперь я пересматриваю это. –

+0

Ваш мак локальный ... разработка только. Это не ваша производственная среда. Почему вы пытаетесь играть в своей производственной среде локально? Причина загрузки изображения при изменении номера в конце URL-адреса заключается в том, что ваш браузер, вероятно, захватывает локальную кешированную версию этого изображения с момента последнего его загрузки. Изображение находится по его пути, которое легко управляется для вас конвейером активов и просто с помощью помощников image_url или image_path, которые дают вам рельсы. Также, Героку замечательный. IMO - единственный реальный вариант для приложения rails. Просто используйте S3 в производстве. – hellion

1

У меня была такая же проблема с использованием Rails 4.2.4. По умолчанию Rails не будет читать папку public. Эта информация присутствует на config/environments/production.rb. Поскольку Apache или NGINX уже справляются с этим.

Чтобы решить, что вы можете изменить эту строку config.serve_static_files = ENV['RAILS_SERVE_STATIC_FILES'].present?, чтобы

config.serve_static_files = true. Если вы используете предыдущие версии рельсов, это может быть указано как config.serve_static_assets = true

+0

То же самое в Rails 5.1.3. Большое спасибо за ответ! –