diff --git a/.gitignore b/.gitignore index d87d4be..2de3904 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ spec/reports test/tmp test/version_tmp tmp +.idea diff --git a/lib/prerender_rails.rb b/lib/prerender_rails.rb index c5f138f..e24e179 100644 --- a/lib/prerender_rails.rb +++ b/lib/prerender_rails.rb @@ -34,7 +34,10 @@ def initialize(app, options={}) 'nuzzel', 'Discordbot', 'Google Page Speed', - 'Qwantify' + 'Qwantify', + #'Chrome-Lighthouse', # Removed to test Web Vitals without prerendering + 'SemrushBot', + 'AhrefsSiteAudit' ] @extensions_to_ignore = [ @@ -105,7 +108,7 @@ def call(env) prerendered_response = get_prerendered_page_response(env,use_second_service) if prerendered_response - response = build_rack_response_from_prerender(prerendered_response) + response = build_rack_response_from_prerender(prerendered_response, env) after_render(env, prerendered_response) return response.finish end @@ -221,10 +224,14 @@ def get_prerender_service_url use_second_service end - def build_rack_response_from_prerender(prerendered_response) - response = Rack::Response.new(prerendered_response.body, prerendered_response.code, prerendered_response.header) + def build_rack_response_from_prerender(prerendered_response, env) + header = prerendered_response.header - @options[:build_rack_response_from_prerender].call(response, prerendered_response) if @options[:build_rack_response_from_prerender] + header['Content-Length'] = prerendered_response.body.length + + response = Rack::Response.new(prerendered_response.body, prerendered_response.code, header) + + @options[:build_rack_response_from_prerender].call(response, prerendered_response, env) if @options[:build_rack_response_from_prerender] response end