tag span rails link_to generate content_tag content ruby-on-rails ruby performance gzip pagespeed

ruby-on-rails - span - rails generate html in helper



¿Cómo habilitar la compresión en Ruby on Rails? (2)

Habilitar la compresión

Agrégalo a config / application.rb:

module YourApp class Application < Rails::Application config.middleware.use Rack::Deflater end end

Fuente: http://robots.thoughtbot.com/content-compression-with-rack-deflater

Publiqué una pregunta similar aquí

Sirviendo Activos Comprimidos en Heroku con Rack-Zippy

pero decidí renunciar a ese servicio, ya que no podía hacerlo funcionar.

Ejecuté PageSpeed ​​Insights en mi sitio web para determinar la velocidad de mi sitio web.

La sugerencia más importante que recibí fue habilitar la compresión.

Compressing resources with gzip or deflate can reduce the number of bytes sent over the network. Enable compression for the following resources to reduce their transfer size by 191.2KiB (74% reduction).

He seguido las instrucciones de este sitio web.

https://developers.google.com/speed/docs/insights/EnableCompression

y dice consultar la documentación de su servidor web sobre cómo habilitar la compresión:

He usado este sitio web para encontrar mi servidor web

http://browserspy.dk/webserver.php

Resulta que mi servidor web es WEBrick.

La página de información de PageSpeed ​​solo enumera los siguientes 3 servidores

Apache: Use mod_deflate Nginx: Use ngx_http_gzip_module IIS: Configure HTTP Compression

He buscado documentación sobre la compresión gzip para servidores WEBrick pero no pude encontrar nada.

He buscado cómo habilitar la compresión en Rails y no pude encontrar nada. Es por eso que estoy preguntando aquí.

He intentado usar Rack Zippy pero me he rendido.

En este momento, ni siquiera sé por dónde empezar. Mi primer paso, es descubrir qué debo hacer.

Editar

Seguí la sugerencia de Ahmed de usar Rack :: Deflator

Confirmé que lo tenía corriendo

rake middleware => use Rack::Deflator

y entonces

git add . git commit -m ''-'' git push heroku master

Desafortunadamente, PageSpeed ​​todavía dice que necesita ser comprimido. Confirmé eso entrando en Herramientas de desarrollo << Configuración de red y actualizando la página. El tamaño y el contenido fueron prácticamente idénticos para todos los recursos, lo que significa que los archivos no están comprimidos.

¿Hay algo mal con uno de mis archivos?

Gracias por tu ayuda.

Aquí está mi archivo config / application.rb completo

require File.expand_path(''../boot'', __FILE__) require ''rails/all'' Bundler.require(*Rails.groups) module AppName class Application < Rails::Application config.middleware.use Rack::Deflater config.assets.precompile += %w(*.png *.jpg *.jpeg *.gif) config.exceptions_app = self.routes config.cache_store = :memory_store end end

Si hay un problema, es probable que la fuente esté allí, ¿verdad?

¿Necesito instalar la gema de deflactor?


Rack::Deflater debería funcionar si usa insert_before (en lugar de "use"), para colocarlo cerca de la parte superior de la pila de middleware, antes de cualquier otro middleware que pueda enviar una respuesta. .use coloca en la parte inferior de la pila. En mi máquina, el middleware superior es Rack::Sendfile . Así que usaría:

config.middleware.insert_before(Rack::Sendfile, Rack::Deflater)

Puede obtener la lista de middleware en orden de carga haciendo rake middleware desde la línea de comandos.

Nota: Un buen enlace para insert_before vs Use en middleware rack