2015-10-12 27 views
8

Różne tutoriale Ruby on Rails zachęcają do wkraplania klejnotu bootstrap-sass. Dlaczego jest to konwencja zamiast wskazywać na CDN?Bootstrap-sass Gem v.s. CDN

podaję w nagłówku mojego app:

<!-- BOOTSTRAP CSS 3.3.5 CDN: --> <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" rel="stylesheet"> 

A w stopce:

<!-- BOOTSTRAP JS 3.3.5 CDN --><script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js" type="text/javascript"></script> 

Zakładając Ja zawsze pracuje z pudełka rozwoju, który jest podłączony do Internetu: Jakie czy rozumowanie związane z używaniem klejnotu bootstrap zamiast wskazywać na CDN? Czy nie zawsze szybciej jest wskazywać CDN, w którym klient prawdopodobnie ma już buforowany plik?

Odpowiedz

10

Prawdopodobny powód, dla którego samouczki Railsa sugerują klejnot bootstrap-sass jest tylko kwestią wygody; jako programiści Railsa jesteśmy przyzwyczajeni do dodawania linii do naszego Gemfile'a w celu integracji bibliotek zewnętrznych.

Gem ma dodatkowe zalety: po wykonaniu bundle install nie potrzebujesz połączenia internetowego, aby załadować zasoby środowiska programistycznego (nie ma potrzeby łączenia się z zewnętrznym CDN). Możesz także użyć SASS, aby zastąpić zmienne Bootstrap mixin i dostosować strukturę.

Oprócz tych korzyści, jeśli nie dostosowujesz Bootstrapa, nie musisz używać klejnotu boostrap-sass w produkcji. W rzeczywistości twoja argumentacja na temat klientów, którzy prawdopodobnie już posiadają CDN hostowane wersje wspólnych frameworków JS/CSS, jest z pewnością ważna.

Krótka odpowiedź: nie myśl o klejnocie boostrap-sass jako konwencji. To dobry punkt wyjścia do personalizacji, ale jeśli nie jest wymagana żadna modyfikacja, rozsądnie jest wybrać CDN.

+0

Zakładając, że wersje są takie same, czy rozsądnie byłoby umieścić klejnot bootstrap w "grupie: programowanie", aby umożliwić rozwój lokalny bez Internetu? – woodenfox

+0

Ogólnie rzecz biorąc, spodziewam się, że dowolne dostosowywanie do Bootstrap będzie miało miejsce w osobnym pliku CSS (aby nie modyfikować oryginalnych plików Bootstrap bezpośrednio). Trudno mi jest dostrzec powód, dla którego kiedykolwiek miałbyś uruchomić oprogramowanie typu bootstrap-sass gem. – woodenfox

+0

Można to zrobić, ale trzeba zmodyfikować układy widoków i/lub pliki manifestu zasobów, aby warunkowo odwoływać się do cdn lub lokalnego wariantu Bootstrapa w zależności od Rails.env. –

-1

Używanie CDN zapewnia tylko CSS, łączenie na stałe plików HTML z określoną wersją bootstrap. Używanie bootstrap w wersji SASS/LESS umożliwia natomiast umieszczanie semantycznych klas w kodzie HTML i nawiązywanie połączenia między klasami semantycznymi i Bootstrap w plikach SASS/LESS specyficznych dla aplikacji (przy użyciu instrukcji @import, @extend ...)

Jeśli użyjesz tej techniki mądrze, skończysz z mniejszymi rozmiarami pobrań, ponieważ zaimportujesz tylko te części bootstrapu, których faktycznie używasz w swojej aplikacji, i będziesz mieć czysty rozdział obaw, co pozwoli ci na zmianę sass/mniej frameworków bez dotykania twoich plików HTML (idealnie).