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