diff --git a/lib/font_assets/middleware.rb b/lib/font_assets/middleware.rb index d4639b4..8620263 100644 --- a/lib/font_assets/middleware.rb +++ b/lib/font_assets/middleware.rb @@ -24,7 +24,11 @@ def call(env) @ssl_request = Rack::Request.new(env).scheme == "https" # intercept the "preflight" request if env["REQUEST_METHOD"] == "OPTIONS" - return [200, access_control_headers, []] + if ext = extension(env["PATH_INFO"]) and font_asset?(ext) + return [200, access_control_headers, []] + else + return @app.call(env) + end else code, headers, body = @app.call(env) set_headers! headers, body, env["PATH_INFO"] @@ -59,6 +63,8 @@ def allow_ssl? def extension(path) "." + path.split("?").first.split(".").last + rescue + "." end def font_asset?(path) diff --git a/lib/font_assets/railtie.rb b/lib/font_assets/railtie.rb index efc801d..0c3c3e1 100644 --- a/lib/font_assets/railtie.rb +++ b/lib/font_assets/railtie.rb @@ -8,13 +8,16 @@ class Railtie < Rails::Railtie config.font_assets.origin ||= "*" config.font_assets.options ||= { allow_ssl: true } - insert_target = if defined?(ActionDispatch::Static) + config.font_assets.insert_target ||= if defined?(ActionDispatch::Static) 'ActionDispatch::Static' else 'Rack::Runtime' end - app.middleware.insert_before insert_target, FontAssets::Middleware, config.font_assets.origin, config.font_assets.options + app.middleware.insert_before config.font_assets.insert_target, + FontAssets::Middleware, + config.font_assets.origin, + config.font_assets.options end end end