WedX - журнал о программировании и компьютерных науках

загрузка изображений из /images не работает в продакшене | Рубин на рельсах

Мое приложение rails загружало изображения, которые я добавил ранее. Все старые загружаются из /assets (и фактически загружаются), новые изображения, которые я добавляю, пытаются загрузить из /images вместо /assets (и не работают)

Мое приложение rails работает на Ubuntu 16 с Nginx и пассажиром.

Я получаю их, просто введя имя файла с .png в конце (например, picture.png) в строку ввода simple_form.

И рендерится из этого: <%= image_tag("#{post.thumbnail_link}", :alt => "#{post.title}", :width => 320, :height => 180, class: "news-object") %>

И через это в посте показать: <%= image_tag("#{@post.thumbnail_link}", :alt => "#{@post.title}", class: "inpost-thumb") %>

Те, которые были добавлены ранее, также загружаются длинной строкой, казалось бы, случайных чисел/букв. - Новые нет.

Единственное, что, как мне кажется, отличается, это то, что новые изображения были недавно отправлены на сервер, тогда как старые изображения могли быть там, когда я поместил приложение rails на рабочий сервер.

Я пытался сделать Rails.application.config.assets.precompile += ["*.png"] в config/initializers/assets, но это не сработало.

Изображения загружаются нормально при разработке на локальном хосте.

Я хочу, чтобы изображения загружались из /assets, как это делают старые. И старый, и новый есть в /assets/images

09.08.2018

  • Ты случайно не на Heroku? 09.08.2018
  • @NMPennypacker Нет, я использую дроплет Digital Ocean Ubuntu 16. 09.08.2018
  • Попробуйте это на своем компьютере: запустите RAILS_ENV=production bundle exec rake assets:clobber, а затем RAILS_ENV=production bundle exec rake assets:precompile. Добавьте и зафиксируйте изменения и запустите развертывание 09.08.2018
  • @NMPennypacker Спасибо! На самом деле я просто запустил это прямо через свой сервер Ubuntu. Я думаю, он просто забил его, пока он не заработал, лол. Пожалуйста, ответьте на этот вопрос, чтобы я мог вознаградить вас за вашу помощь. 09.08.2018
  • Прохладный. Я добавил ответ. Если вы делаете это на своем компьютере, вам, вероятно, не нужно устанавливать RAILS_ENV. Если это работало в рабочей среде, вы все равно должны выполнить предварительную компиляцию локально и зафиксировать изменения в системе управления версиями. 09.08.2018

Ответы:


1

Вы можете попробовать запустить:

RAILS_ENV=production bundle exec rake assets:clobber

RAILS_ENV=production bundle exec rake assets:precompile

Добавьте и зафиксируйте изменения и запустите развертывание. Похоже, ваши новые активы просто не были скомпилированы.

Дополнительную информацию о конвейере ресурсов Rails можно найти здесь: https://edgeguides.rubyonrails.org/asset_pipeline.html

Быстрое прочтение может сэкономить вам немало времени.

09.08.2018
  • Спасибо, мне нужно запускать это каждый раз, когда я добавляю новые активы в свое приложение rails? 09.08.2018
  • Да, каждый раз, когда вы что-то добавляете/меняете в /assets. Некоторые люди предпочитают автоматизировать его в процессе сборки. 09.08.2018
  • Новые материалы

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..

    Использование машинного обучения и Python для классификации 1000 сезонов новичков MLB Hitter
    Чему может научиться машина, глядя на сезоны новичков 1000 игроков MLB? Это то, что исследует это приложение. В этом процессе мы будем использовать неконтролируемое обучение, чтобы..

    Учебные заметки: создание моего первого пакета Node.js
    Это мои обучающие заметки, когда я научился создавать свой самый первый пакет Node.js, распространяемый через npm. Оглавление Глоссарий I. Новый пакет 1.1 советы по инициализации..

    Забудьте о Matplotlib: улучшите визуализацию данных с помощью умопомрачительных функций Seaborn!
    Примечание. Эта запись в блоге предполагает базовое знакомство с Python и концепциями анализа данных. Привет, энтузиасты данных! Добро пожаловать в мой блог, где я расскажу о невероятных..


    Для любых предложений по сайту: [email protected]