sass - What is the equivalent of Rails.application.assets in a production environment? -
i'm using sass::engine compile css file dynamically, , need pass environment , load paths sprockets. works fine in development:
def compile_scss view_context = actionview::base.new environment = rails.application.assets # body , filename instance variables created elsewhere @compiled_file = sass::engine.new(body, filename: filename, syntax: :scss, cache: false, load_paths: environment.paths, sprockets: { context: view_context, environment: environment }).render end but fails in production because rails.application.assets nil. equivalent in production?
rails.application.assets nil in production because assets precompiled , served public folder (thanks @bkunzi01 that). also, sprockets needs asset paths passed in order run, not environment. paths available rails.application.config.assets.paths. able stylesheet compiler working following method.
def compile_scss view_context = actionview::base.new environment = rails.application.assets || rails.application.config.assets # body , filename instance variables created elsewhere @compiled_file = sass::engine.new(body, filename: filename, syntax: :scss, cache: false, load_paths: environment.paths, sprockets: { context: view_context, }).render end
Comments
Post a Comment