Что я пытаюсь выполнить
Я буду размещать веб-приложение в локальной сети максимум для 50 человек.Никто из локальной сети не будет обращаться к веб-серверу.Прямо сейчас у меня есть веб-приложение, использующее CDN для доставки Bootstrap и jQuery, помимо прочего.Я бы хотел, чтобы веб-приложение использовало резервные копии локальных статических копий файлов CDN на случай, если что-то пойдет не так.
Мой вопрос
- Если мой веб-сервер используется только пользователями в локальной сети, какой метод лучше: CDN или локальные файлы?
- Как сделать откат на локальные файлы без , используя
document.write()
?
ПРИМЕЧАНИЕ. Я не пытаюсь выполнить это только для jQuery.Я хотел бы сделать это для нескольких файлов.
Связанные вопросы SO
Я посмотрел на десятки других вопросов, которые отвечают на мои вопросы.пытаюсь сделать, самые популярные перечислены ниже.
- Лучший способ использовать размещенный в Google jQuery, но прибегнуть к моей размещенной в Google библиотеке не удалось
- Как загрузить локальные файлы сценариев в качестве запасного варианта в случаях, когда CDN заблокирован / недоступен?
- Доступен ли Google CDN для jQuery в Китае?
То, что я попытался
Я реализовал следующий код из вопроса (1)
<!--<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>-->
<script>
console.log(window.jQuery) // ==> undefined
window.jQuery || document.write('<script type="text/javascript" src="{% static "js/jquery-3.4.1.min.js" %}"><\/script>');
console.log(window.jQuery) // ==> undefined
</script>
, но это решение:
- не удается загрузить документ
- заставляет Google Chrome DevTools указать следующее
[Violation] Avoid using document.write(). https://developers.google.com/web/updates/2016/08/removing-document-write
[Violation] Parser was blocked due to document.write(<script>)
Это привело меня к такому вопросу под названием Скрипт с блокировкой синтаксического анализатора, исходный код, вызывается через document.write - как его обойти? .Затем я попытался реализовать принятое решение и добавил async
к своему коду следующим образом:
<script>
console.log(window.jQuery) // ==> undefined
window.jQuery || document.write('<script type="text/javascript" src="{% static "js/jquery-3.4.1.min.js" %}" async><\/script>');
console.log(window.jQuery) // ==> undefined
</script>
, но все равно не удается загрузить документ, и я снова получаю следующую ошибку:
[Violation] Avoid using document.write(). https://developers.google.com/web/updates/2016/08/removing-document-write.
В заключение
Итак, как правильно это сделать?Как мне сделать это без использования document.write ()?Похоже, что ответы на предыдущие вопросы устарели.