如何使用Premailer-Rails gem为我的HTML电子邮件指定样式表?

mar*_*ion 12 ruby-on-rails premailer asset-pipeline ruby-on-rails-5

我有一个样式表,我想在路径中的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' %>
Run Code Online (Sandbox Code Playgroud)

但是,在我的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"):
Run Code Online (Sandbox Code Playgroud)

那么如何在生产中找出/指定此样式表的正确路径?

mpu*_*ach 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')
Run Code Online (Sandbox Code Playgroud)

<%= stylesheet_link_tag 'email-styles.css', media: 'all' %>然后在模板中使用。