2017-09-05 30 views
1

的時候,我們有以下服務器設置:樣式表電子郵件中使用額外sidekiq服務器

  • 應用服務器
  • 後臺作業服務器(ActiveJob與Sidekiq)
  • 數據庫服務器

正常的工作流程是:

  1. 用戶訪問網站並填寫註冊表格
  2. 提交歡迎電子郵件後設置爲deliver_later
  3. 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的也預編譯工作者服務器上的資產。但是這似乎是一個小小的開銷。

這是解決問題的唯一解決方案嗎?
有沒有人有類似的設置和問題?

問候,
溫泉

回答

0

默認情況下,Rails的假設您已經在生產環境中的文件預編譯,如果你想使用實時編譯(運行時編譯資產)在生產中必須設置config.assets.compiletrue

配置/環境/ production.rb ...

config.assets.compile = true 
+0

但隨後我們會有正常的網站實時編譯過。這不是我們想要的。那麼唯一的解決方案就是在工作服務器上編譯資產呢? – Spa

相關問題