2013-10-07 11 views
11

Ich arbeite an einem Projekt, das CSS oder JS in der Produktion nicht minimiert.Rails nicht reduzierend

Leider hatte ich dieses Problem nie, und ich bin nur nicht sehr vertraut, wie die Asset-Pipeline im Detail funktioniert, um das Problem zu debuggen.

Meine Frage ist, was sind die wichtigsten Punkte/Einstellungen, die ich überprüfen muss, um sicherzustellen, dass das aktiviert ist?

Es ist richtig die verschiedenen Dateien in einer einzigen JS und CSS-Datei zu kombinieren ... es ist einfach nicht zu minimieren.

Bisher habe ich config.assets.js_compressor = :uglifier zu production.rb hinzugefügt und uglifier zum Gemfile, aber immer noch keine Würfel.

Ich bin mit einem Rails 3.2.12 von Rails 2

Antwort

33

Diese Antwort gilt für Schienen arbeiten 4

Einer der Gründe, wenn rails-4 Assets nicht verkleinert, ist, wenn RAILS_ENV nicht auf Produktion eingestellt ist.

Dies geschieht in der Regel, wenn Sie Vermögenswerte vorge kompilieren und ausführen webrick in prod-Modus:
rails s -e 'production'
aber immer noch die resultierende application.css und application.js verkettet aber nicht minimierte.

Um dies zu lösen, verwenden Sie die folgende die env angeben, während Vermögenswerte Vorkompilieren:

$ RAILS_ENV = Produktion Bündel exec Rake Vermögen: precompile

Auch wenn Sie von Schienen Upgrade werden 3 bis Schienen 4, beachten Sie bitte, dass config.assets.compress = true Direktive in production.rb ist nicht länger wirksam für Schienen 4. Sie müssen die folgenden Anweisungen in Ihrer config/environments/production.rb Datei hinzufügen, um js und CSS-Dateien zu minimieren:

# Compress JavaScripts and CSS. 
    config.assets.js_compressor = :uglifier # make sure the 'uglifier' gem is included before adding this line 
    config.assets.css_compressor = :sass # if you are using the sass-rails gem, this line is unnecessary 
+3

Beachten Sie, dass, wenn Sie 'sass-rails' verwenden, keine Angabe von' config.assets.css_compressor' erforderlich ist, wie in der Dokumentation angegeben (http://guides.rubyonrails.org/asset_pipeline.html#what-is-the-) asset-pipeline-questionmark) – mdemolin

+0

Beachten Sie auch, dass das Ausführen von Assets: Vorkompilieren ein zweites Mal nichts bewirkt, wenn sich die Originaldateien nicht geändert haben. Sie werden keine Änderungen in der Produktion sehen, bis Sie Ihren Server bouncen. –

0

Upgrade Wie wissen Sie es nicht ist minifying? Haben Sie ausgeführt

rake assets:precompile 

oder verwenden Sie capistrano für die Bereitstellung? Wenn Sie Capistrano für die Bereitstellung verwenden stellen Sie sicher, diese Zeile oben auf deploy.rb

load 'deploy/assets' 

Andernfalls fügen Sie bitte die Schritte veröffentlichen Sie nehmen auf immer es