Таблицы стилей в электронной почте при использовании дополнительного сервера sidekiq
У нас есть следующие настройки сервера:
- Сервер приложений
- Сервер фоновых заданий (ActiveJob с Sidekiq)
- Сервер базы данных
Обычный рабочий процесс будет:
- Пользователь заходит на сайт и заполняет регистрационную форму
- После отправки приветственное письмо устанавливается
deliver_later
- Sidekiq делает доставку.
Теперь мы используем premailer-rails для оформления наших писем. Файл CSS находится под app/assets/stylesheets/emails/base.scss
, Мы ссылаемся на это в mail.html.haml
-Расположение с stylesheet_link_tag 'emails/base'
, Это прекрасно работает в разработке и при предварительном просмотре писем.
Но если мы развернем все и протестируем на производстве, мы получим ошибку:ActionView::Template::Error: The asset "emails/base.css" is not present in the asset pipeline
Это работает очень хорошо, когда мы говорим capistrano прекомпилировать ресурсы также на рабочем сервере. Но это, кажется, немного над головой.
Это единственное решение для устранения проблемы?
У кого-нибудь есть похожие настройки и проблемы?
С Уважением,
спа
1 ответ
По умолчанию Rails предполагает, что ваши файлы предварительно скомпилированы в производственной среде, если вы хотите использовать живую компиляцию (скомпилировать ваши ресурсы во время выполнения) в рабочей среде, вы должны установить config.assets.compile
в true
,
config/environment / production.rb...
config.assets.compile = true