使用额外的sidekiq服务器时电子邮件中的样式表

时间:2017-09-05 06:29:47

标签: ruby-on-rails ruby-on-rails-5 sidekiq premailer

我们有以下服务器设置:

  • Application Server
  • 后台作业服务器(带Sidekiq的ActiveJob)
  • 数据库服务器

正常的工作流程是:

  1. 用户访问网站并填写注册表
  2. 提交欢迎电子邮件后,设置为deliver_later
  3. Sidekiq完成交付。
  4. 现在我们使用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 个答案:

答案 0 :(得分:0)

默认情况下,如果要在生产环境中使用实时编译(在运行时编译资产),Rails会假定您已在生产环境中预编译文件,必须将config.assets.compile设置为{{1} }。

<强>配置/环境/ production.rb ...

true