with react rails ruby-on-rails heroku minify asset-management

ruby on rails - react - La mejor forma de combinar y minificar JS/CSS en Heroku



heroku react rails (8)

Aquí están las opciones de configuración para comprimir sus activos.

http://guides.rubyonrails.org/asset_pipeline.html#customizing-the-pipeline

config.assets.css_compressor = :yui config.assets.js_compressor = :uglifier config.assets.compress = true gem ''uglifier'' gem ''yui-compressor''

En primer lugar, de acuerdo con esta respuesta , la opción :cache => true en stylesheet_link_tag y javascript_include_tag no funciona en Heroku. ¿Es esto cierto? He encontrado :cache => true para trabajar ocasionalmente, pero no siempre (¡raro!)

Además, ¿cuál es la mejor solución aquí? Idealmente, combinaría y miniaturizaría a la perfección todo CSS / JS. Heroku Asset Packager afirma hacer esto: ¿hay mejores opciones?


Descubrí que la adición de un gancho de precompilación de git que compila y empaqueta elementos, y luego los agrega a la confirmación actual es útil en este caso.

El mío que usa Jammit se ve así (en .git/hooks/pre-commit ):

jammit rake barista:brew git add public/assets/* git add public/javascripts/*

De esta manera, todos sus bienes serán empacados para usted y ya no tendrá que preocuparse por eso.



Es una forma diferente de administrar su CSS / Javascript, pero es posible que desee verificar la shoebox complemento Rails.

Shoebox puede combinar, minificar y almacenar en caché.


Estoy usando Jammit en Heroku. Funciona genial. Puedes construir tus activos localmente y registrarte en heroku. utilizar

jammit --force

la versión actual 0.5.1 tiene problemas para trabajar en heroku pero puedes instalar la versión fija desde git: //github.com/documentcloud/jammit.git

Si está utilizando Rails 3, especifique lo siguiente en su paquete Gemfile:

gem "jammit", :git => "git://github.com/documentcloud/jammit.git"

Para Rails 2. *

config.gem "jammit", :source => "git://github.com/documentcloud/jammit.git"

Buena suerte.



Probablemente haya varias formas de hacerlo, pero lo que funciona para mí es minimizar antes de presionar. Luego uso un subárbol para mantener mis archivos de compilación separados de los archivos "fuente". Entonces, por ejemplo, si construye en una carpeta llamada "dist", puede presionar a un subárbol llamado heroku / master como este:

git subtree push --prefix dist heroku master

Simplemente no se olvide de asegurarse de que no se ignore la carpeta dist (a menudo lo es, de forma predeterminada), por lo tanto, edite su archivo .gitignore en consecuencia.

El comando --prefix garantiza que la carpeta dist se convierta efectivamente en la carpeta "raíz" desde el punto de vista de esa rama.


Todavía no lo he probado en heroku, pero Sprockets podría ser bueno para eso. Además, en el pasado, he tenido más suerte con

:cache => ''all.css'' :cache => ''all.js''

en lugar de ''verdadero''