Rails应用程序中的CSS内联:性能问题

Rails应用程序中的CSS内联:性能问题,css,ruby-on-rails,actionmailer,Css,Ruby On Rails,Actionmailer,我需要发送一大堆事务性电子邮件。它们每个都有点不同,所以我不能在用户之间“缓存”它们 我正在使用内联CSS。它工作得很好,只是每封邮件都要花费大量的时间和CPU,而且我的服务器也很麻烦 我曾尝试使用CachedProviders,但它并没有带来真正的区别(我认为问题在于内联过程本身) 是否有优化此流程的解决方案 以防对其他人有所帮助:最终对我们有效的是重构我们的CSS,并删除所有未用于电子邮件的CSS文件/规则 你可能想知道为什么我们有这么多“未使用”的CSS,但这只是因为我们与我们的主站点共享

我需要发送一大堆事务性电子邮件。它们每个都有点不同,所以我不能在用户之间“缓存”它们

我正在使用内联CSS。它工作得很好,只是每封邮件都要花费大量的时间和CPU,而且我的服务器也很麻烦

我曾尝试使用CachedProviders,但它并没有带来真正的区别(我认为问题在于内联过程本身)


是否有优化此流程的解决方案

以防对其他人有所帮助:最终对我们有效的是重构我们的CSS,并删除所有未用于电子邮件的CSS文件/规则

你可能想知道为什么我们有这么多“未使用”的CSS,但这只是因为我们与我们的主站点共享了一些CSS,以保持代码的简单和干净。即使没有使用特定的规则,内联过程也必须通过这些规则


通过这样做,我们在特定情况下将渲染时间除以5。

以防对其他人有所帮助:最终对我们有效的是重构CSS并删除所有未用于电子邮件的CSS文件/规则

你可能想知道为什么我们有这么多“未使用”的CSS,但这只是因为我们与我们的主站点共享了一些CSS,以保持代码的简单和干净。即使没有使用特定的规则,内联过程也必须通过这些规则


通过这样做,在我们的特定情况下,我们将渲染时间除以5。

您是否在某种背景作业中进行处理?是的。它是由Cron作为后台进程触发的。问题是CSS相当复杂。我没料到它需要那么多资源来内联。除非我错过了一些优化技巧。你是在某种背景工作中进行处理的吗?是的。它是由Cron作为后台进程触发的。问题是CSS相当复杂。我没料到它需要那么多资源来内联。除非我错过了一些优化技巧。