Как указать таблицу стилей для моего HTML-письма с драгоценным камнем Premailer-Rails?
У меня есть таблица стилей, которую я хочу использовать в своих электронных письмах HTML по пути:
app/vendor/assets/stylesheets/inspinia/email_templates/email-styles.css
Я использую Premailer-Rails gem для моего стиля электронной почты.
В моем макете mailer.html.erb
у меня есть следующее:
<%= stylesheet_link_tag "inspinia/email_templates/email-styles.css", media: 'all' %>
Однако в моих журналах на Heroku я получаю следующее сообщение:
app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92] Started GET "/stylesheets/inspinia/email_templates/email-styles.css" for 54.167.56.21 at 2016-12-23 23:25:08 +0000
app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92]
2016-12-23T23:25:08.286725+00:00 app[web.1]: [923202d9-b3f1-4b9a-9f42-7b70dcc01d92] ActionController::RoutingError (No route matches [GET] "/stylesheets/inspinia/email_templates/email-styles.css"):
Итак, как мне определить/указать правильный путь для этой таблицы стилей в процессе производства?
Ответы
Ответ 1
попробуйте переместить папку email-styles.css
в /public/assets/
или добавить ее в конвейер активов.
Вики-портал:
-
Файловая система: если файл внутри public/с тем же путем, что и в URL-адресе, он считывается с диска. Например. если URL http://cdn.example.com/assets/email.css, содержимое файла, находящегося в public/assets/email.css, возвращается, если оно существует.
-
Asset Pipeline: если Rails доступен и конвейер ресурсов включен, файл извлекается через конвейер активов. Например. если URL-адрес http://cdn.example.com/assets/email-fingerprint123.css, файл email.css запрашивается из конвейера активов. То есть, отпечаток пальца и префикс (в этом случае активы являются префиксом) удаляются, прежде чем запрашивать его из конвейера активов.
Ответ 2
Добавьте в config/initializers/assets.rb
следующее:
Rails.application.config.assets.precompile << 'email-styles.css'
Rails.application.config.assets.paths << Rails.root.join('app/vendor/assets/stylesheets/inspinia/email_templates')
Затем используйте <%= stylesheet_link_tag 'email-styles.css', media: 'all' %>
в шаблоне.