Враховуючи це
- CDN - це хороша річ, оскільки вони можуть обслуговувати ресурси ближче до клієнта, клієнт може кешувати їх, а ви можете зменшити навантаження на свій власний сервер.
- У останніх веб-переглядачах завантаження ресурсів із сторонніх серверів не знижує безпеку завдяки Integrity Subresource (SRI) .
- CDN можуть бути відключені або заблоковані в деяких країнах і недоступні при розробці в режимі офлайн 1 .
Я думаю, що це вимушено використовувати CDN, але також бути готовим до того, що вони будуть недоступними. Ця публікація в блозі дає приємне ознайомлення з різними підходами щодо надання резервних копій. Якщо ви подивитесь на базовий приклад, ви можете побачити, що він вже містить досить багато кодового шаблону, щоб забезпечити резервні копії для лише jQuery та Bootstrap, тоді як прихильне рішення пропонує використовувати Fallback.js , який, здається, значною мірою не відбувся протягом минулого року . Аналогічно, найбільш релевантне питання щодо теми стосується лише надання резервного jQuery.
Однак у більшості реальних проектів я б розраховував мати 5 і більше ресурсів js / css, тому я відчуваю, що вам не доведеться повторювати безладні котлопластини, щоб забезпечити запаси всіх для них. Крім того, кожен раз, коли ви додаєте або оновлюєте ресурс, вам доведеться це робити
- Оновіть посилання CDN
- Оновіть локальну резервну копію шляхом завантаження вручну або зміни версії в конфігурації npm / bower
- Оновіть посилання на резервну копію
- Оновіть хеш SRI
В той час, як в ідеальному світі я б розраховував додати / оновити ресурс в одному файлі конфігурації, а всі інші кроки виконати автоматично (а потім запустити тести, щоб побачити, чи оновлення щось порушило).
Чи вже існує налагоджений робочий процес для досягнення цього?
Або CDN, і особливо SRI, ще занадто недавні?
Або більшості людей просто не байдуже забезпечувати резервні ресурси для CDN-ресурсів?
1. Хоча у вас може бути побудова розробок, яка не покладається на CDN, але я також вважаю це формою резервного копіювання, оскільки його також потрібно підтримувати.
Fallback.js
дотриманий, тому що він вже працює чудово? Програмне забезпечення не потрібно міняти кожні 5 хвилин, якщо воно вже працює.