Вы можете сделать оба. Если у вас возникли проблемы с CDN или по какой-либо другой причине необходим запасной вариант, вы можете проверить, загружен ли CSS, например, следующим образом:
<script>
setTimeout(function() {
let loaded = false
for (let s in document.styleSheets) {
if (document.styleSheets[s].href &&
~document.styleSheets[s].href.indexOf('bootstrap.min.css')) loaded = true
}
if (!loaded) {
let link = document.createElement('link')
link.href = 'path/to/fallback/bootstrap.min.css'
link.type = 'text/css'
link.rel = 'stylesheet'
document.getElementsByTagName('head')[0].appendChild(link)
}
}, 500)
</script>
Если bootstrap.min.css
не загружен после 500 мс новый <link href="...>
, указывающий на локальный файл, будет вставлен в раздел <head>
документа.
Существует две основные причины использования CDN
- Если вы у пользователей по всему миру они (вероятно) будут испытывать более быстрое время загрузки
- Вы избегаете большого количества попаданий / нагрузки на свой собственный сервер
Существует две причины, по которым не с использованием CDN
- Вы действительно не знаете наверняка, доступен ли ресурс, и даже не знаете, существует ли определенный CDN завтра вообще
- Теоретически вы можете использовать CDN для отслеживания пользователей. и некоторые CDN делают это .