Zarządzanie Assetami w Rails

Zarządzanie Assetami w Rails

Podsumowanie pięciu najbardziej powszechnych sposobów na zarządzanie assetami w aplikacjach Railsowych.

9d11a5627aeee37e494a279b35ed5fe0?s=128

Filip Bartuzi

October 15, 2014
Tweet

Transcript

  1. 3.

    #1 Manualna instalacja vendor/assets/ Przeciw: ! - Zależności między bibliotekami

    nie są rozwiązane.! - Kłopotliwe aktualizacje.! - Powielanie tych samych plików między projektami.! - Czasochłonna instalacja.! - Problem ze ścieżkami do plików.! ! Za:
 - Brak zależności bower/bundler/npm.
  2. 4.

    #2 rubygems.org Ruby Gems Za:! + Używa Bundlera (zależności, require

    w sprockets).! + Wszystko w jednym pliku Gemfile.! + Łatwo i szybko.! ! Przeciw:! - Zwykle nie są aktualne.! - Wersja gema != wersja biblioteki.! - Czasochłonne dla opiekuna Gema.! - Każdy Gem opakowuje bibliotekę inaczej.!
  3. 5.

    #3 bower.io Bower Za:
 + Rozwiązywanie zależności.! + Zawsze najnowsze

    wersje.! ! Przeciw:! - Brak bezpośredniej integracji z Rails.! - Kłopotliwa konfiguracja (Rails i Bower)! - Dodatkowy proces przy budowaniu projektu.! - Zależności Node, npm i git.
  4. 6.

    #4 42dev/bower-rails Gem Bower + Rails Za:! + DSL (domain

    specific language)! + Ułatwiona konfiguracja z Railsami…! ! Przeciw:
 - … ale wciąż czasochłonna.! - Żonglowanie rake-taskami.
  5. 7.

    #5 rails-assets.org Rails-Assets! Za:! + Brak vendor/assets.! + Poprawne wersjonowanie.!

    + Wszystkie zalety Bundlera.! + Brak dodatkowych kroków (bundle).! + Używane na produkcji bez zarzutów.! + Łatwa instalacja i konfiguracja.
 + Open Source!
  6. 8.

    source 'https://rubygems.org'! + source 'https://rails-assets.org'! ! gem 'rails', '~> 4.0.0'!

    ! group :assets do! gem 'sass-rails'! gem 'uglifier'! gem 'coffe-rails'! + gem 'rails-assets-bootstrap'! + gem 'rails-assets-angular'! + gem 'rails-assets-leaflet'! end
  7. 10.
  8. 11.

    ❖ application.js
 
 //= require_self
 + //= require bootstrap
 +

    //= require angular
 + //= require leaflet
 //= require_tree .! ❖ style.csss
 /*
 *= require self
 + *= require bootstrap
 + *= require leaflet
 *= require_tree .
 */

  9. 12.
  10. 13.
  11. 14.
  12. 15.
  13. 16.
  14. 19.
  15. 20.