2015-10-12 2 views
8

Diverse Ruby on Rails-Tutorials fördern die Instillation des Bootstrap-Sass-Edelsteins. Warum ist das eher eine Konvention als ein Hinweis auf ein CDN?Bootstrap-sass Gem vs. CDN

Ich habe in Header meine App enthalten:

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

Und in der Fußzeile:

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

Angenommen, ich bin immer wieder von einem Entwicklungsfeld arbeiten, die mit dem Internet verbunden ist: Was ist der Grund für die Verwendung des Bootstrap-Edelsteins, anstatt nur auf ein CDN zu zeigen? Ist es nicht immer schneller, auf ein CDN zu verweisen, wo ein Client die Datei wahrscheinlich bereits zwischengespeichert hat?

Antwort

10

Der wahrscheinliche Grund, warum Rails Tutorials das bootstrap-sass Juwel vorschlagen, ist nur eine Frage der Bequemlichkeit; Als Entwickler von Rails sind wir daran gewöhnt, eine Zeile zu unserer Gemfile hinzuzufügen, um Bibliotheken von Drittanbietern zu integrieren.

Es gibt zusätzliche Vorteile für den Edelstein: Nachdem Sie eine bundle install machen, benötigen Sie keine Internetverbindung, um die Assets Ihrer Entwicklungsumgebung zu laden (keine Verbindung zu einem externen CDN erforderlich). Sie können auch SASS verwenden, um Bootstrap-Mixin-Variablen zu überschreiben und das Framework anzupassen.

Diese Vorteile beiseite, wenn Sie Bootstrap nicht anpassen, gibt es keine Notwendigkeit, das boostrap-sass Juwel in der Produktion zu verwenden. Tatsächlich ist Ihre Argumentation über Kunden, die möglicherweise bereits CDN-gehostete Versionen von gängigen JS/CSS-Frameworks haben, sicherlich gültig.

Kurze Antwort: Denken Sie nicht an die boostrap-sass Edelstein als Konvention. Es ist ein guter Ausgangspunkt für die Anpassung, aber wenn keine Anpassung erforderlich ist, ist es durchaus sinnvoll, mit einem CDN zu gehen.

+0

Angenommen, die Versionen sind die gleichen, wäre es sinnvoll, das Bootstrap-Juwel in die "Gruppe: Entwicklung" aufzunehmen, um eine lokale Entwicklung ohne Internet zu ermöglichen? – woodenfox

+0

Im Allgemeinen würde ich jede Anpassung an Bootstrap in einer separaten CSS-Datei erwarten (so dass Sie die ursprünglichen Bootstrap-Dateien nicht direkt ändern). Es fällt mir schwer, einen Grund dafür zu finden, warum du das Bootstrap-Sass-Juwel jemals in der Produktion laufen lässt. – woodenfox

+0

Sie könnten das tun, aber Sie müssen Änderungen an Ihren Ansichtslayouts und/oder Asset-Manifestdateien vornehmen, um abhängig von Rails.env bedingungsabhängig auf die cdn- oder lokale Variante von Bootstrap zu verweisen. –

-1

Mit dem CDN erhalten Sie nur CSS, Hard-Verdrahtung Ihrer HTML-Dateien zu einer bestimmten Bootstrap-Version. Mit der SASS/LESS-Version des Bootstraps hingegen können Sie semantische Klassen in Ihren HTML-Code einfügen und die Verbindung zwischen Ihren semantischen Klassen und Bootstrap in Ihren appspezifischen SASS/LESS-Dateien herstellen (mit @import, @extend ... Anweisungen)

Wenn Sie diese Technik mit Bedacht verwenden, werden Sie kleinere Downloads erhalten, da Sie nur die Teile des Bootstraps importieren, die Sie tatsächlich in Ihrer Anwendung verwenden, und Sie werden Probleme sauber trennen, so dass Sie Sass/weniger Frameworks wechseln können ohne Ihre HTML-Dateien (im Idealfall) zu berühren.