Должен ли я использовать Bootstrap из CDN или сделать копию на моем сервере?



какова лучшая практика использования Twitter Bootstrap, обратитесь к нему из CDN или сделайте локальную копию на моем сервере?



поскольку Bootstrap продолжает развиваться, я боюсь, что если я обращусь к CDN, пользователь со временем увидит разные веб-страницы, а некоторые теги могут даже сломаться. Какой выбор у большинства людей?

534   4  

4 ответов:

почему не оба \_(ツ)_/? Скотт Хансельман есть хорошая статья об использовании CDN для повышения производительности, но изящно возврат к локальной копии в случае, если CDN не работает.

специфичный для bootstrap, вы можете сделать следующее для загрузка с CDN с локальным резервным:

<head>
  <!-- Bootstrap CSS CDN -->
  <link rel="stylesheet" href="//netdna.bootstrapcdn.com/bootstrap/3.0.3/css/bootstrap.min.css">
</head>
<body>
  <!-- APP CONTENT -->

  <!-- jQuery CDN -->
  <script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.3/jquery.min.js"></script>
  <!-- jQuery local fallback -->
  <script>window.jQuery || document.write('<script src="/local/jquery.min.js"><\/script>')</script>
  <!-- Bootstrap JS CDN -->
  <script src="//netdna.bootstrapcdn.com/bootstrap/3.0.3/js/bootstrap.min.js"></script>
  <!-- Bootstrap JS local fallback -->
  <script>if(typeof($.fn.modal) === 'undefined') {document.write('<script src="/local/bootstrap.min.js"><\/script>')}</script>
  <!-- Bootstrap CSS local fallback -->
  <div id="bootstrapCssTest" class="hidden"></div>
  <script>
    $(function() {
      if ($('#bootstrapCssTest').is(':visible')) {
        $("head").prepend('<link rel="stylesheet" href="/local/bootstrap.min.css">');
      }
    });
  </script>
</body>

* вы также можете сделать тот же тест используя YepNope или запасной вариант.js
* за вспышки комментарий и данное решение, обновленный ответ для проверки .visible класс вместо тестирования rgb(51, 51, 51)
* когда тестирование загруженной таблицы стилей, вы должны искать стиль, который б были применены, создать элемент, и посмотреть, если он был применен.


на ваш вопрос о лучших практик, есть много очень веские причины использовать CDN в производстве окружающая среда:

  1. это увеличивает параллельность доступен.
  2. это увеличивает вероятность того, что будет кэш-нажмите.
  3. это гарантирует, что груз будет меньше.
  4. это уменьшает количество ширина полосы используется на вашем сервере.
  5. это гарантирует, что пользователь получит географически близко ответ.

для вашей проблемы с версиями, любой CDN стоит своего веса в соли, позволяя вам ориентироваться на конкретную версию библиотеки, чтобы вы случайно не вносили критические изменения с каждым выпуском.

зависит от конкретного сайта.

У вас много пользователей? Вы заботитесь об использовании полосы пропускания? Является ли производительность проблемой (CDN может ускорить ответы) ?

вы можете ссылаться на конкретную версию:

//maxcdn.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css

или

//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css

этак вам не нужно беспокоиться об обновлениях библиотеки, его лучше обновлять.

Я не уверен, что точная статистика о выборе разработчиков, но вы можете посмотреть здесь и см. миллиарды запросов отправляются в Bootstrap CDN, что означает, что он надежен и безопасен в использовании.

Я пытался изменить KyleMit это но форум отмечал как неправильный отступ кода, даже это не было, поэтому я добавляю свой вклад прямо ниже:

поскольку вопрос помечен как twitter-bootstrap темы (и не только twitter-bootstrap-3), возможно, полезно обновить ответ для более новой версии Bootstrap.

поскольку фреймворк добавил новый класс для скрытия элементов в своей четвертой версии, мы должны используйте .d-none вместо .hidden в этом случае.

все остальное остается тем же самым в этом случае, за исключением версии lib (конечно!)

Добро пожаловать Bootstrap 4.1 CDN:

//stackpath.bootstrapcdn.com/bootstrap/4.1.2/css/bootstrap.min.css

Comments

    Ничего не найдено.