diff --git a/lib/stylesheet/manager.rb b/lib/stylesheet/manager.rb index 86e2552d243..6b916e9ef88 100644 --- a/lib/stylesheet/manager.rb +++ b/lib/stylesheet/manager.rb @@ -436,15 +436,21 @@ class Stylesheet::Manager end def color_scheme_digest - cs = @color_scheme || theme&.color_scheme - category_updated = Category.where("uploaded_background_id IS NOT NULL").pluck(:updated_at).map(&:to_i).sum + categories_updated = self.class.cache["categories_updated"] ||= begin + Category + .where("uploaded_background_id IS NOT NULL") + .pluck(:updated_at) + .map(&:to_i) + .sum + end + fonts = "#{SiteSetting.base_font}-#{SiteSetting.heading_font}" - if cs || category_updated > 0 + if cs || categories_updated > 0 theme_color_defs = theme&.resolve_baked_field(:common, :color_definitions) - Digest::SHA1.hexdigest "#{RailsMultisite::ConnectionManagement.current_db}-#{cs&.id}-#{cs&.version}-#{theme_color_defs}-#{Stylesheet::Manager.last_file_updated}-#{category_updated}-#{fonts}" + Digest::SHA1.hexdigest "#{RailsMultisite::ConnectionManagement.current_db}-#{cs&.id}-#{cs&.version}-#{theme_color_defs}-#{Stylesheet::Manager.last_file_updated}-#{categories_updated}-#{fonts}" else digest_string = "defaults-#{Stylesheet::Manager.last_file_updated}-#{fonts}"