Почему по умолчанию Asp.Net Core ссылается на cdnjs.cloudflare.com? - PullRequest
0 голосов
/ 09 июля 2019

Я создал проект Asp.Net Core по шаблону (см. Изображение ниже). Файл "Pages / Shared / _ValidationScriptsPartial.cshtml" содержит ссылки на URL "https://cdnjs.cloudflare.com". В нашей сетевой среде возникают проблемы со ссылками на внешние ресурсы, поэтому мы скопировали файлы в проект.

Интересно, почему шаблон по умолчанию предоставляет такой код? Может кто-нибудь объяснить мне преимущества ссылки на cloudflare только в интранете? приложение пожалуйста? Я новичок в веб-разработке, поэтому мне интересно, будет ли это лучшей практикой?

Большое спасибо за ваши усилия!

Вот шаблон, который я использовал:

enter image description here

Ответы [ 2 ]

1 голос
/ 09 июля 2019

tl; dr: Clouflare (и другие CDN) помогают с загрузкой страницы


Cloudflare - это CDN (сеть доставки контента), что означает, что они могут содержать такие вещи, как обычные файлы JavaScript и CSS, которые используются большим количеством проектов.

Всякий раз, когда кто-то обращается к вашему веб-приложению, его браузер должен переходить на исходный сервер (сервер, с которого обслуживается приложение). В большинстве случаев экстрасети это может означать много переходов с компьютера пользователя на ваш сервер. Но такие сервисы, как Cloudlfare, Akami и Azure CDN (другие CDN), позволяют размещать эти файлы «на грани». Это причудливый маркетинговый термин «физически ближе к пользователю».

(файлы могут быть загружены с сервера только со скоростью самого медленного компонента, поэтому размещение их ближе к пользователю означает, что им не нужно продвигаться так далеко, чтобы получить их)

По сути, эти службы имеют сотни сотен серверов по всему миру, которые могут размещать ваши файлы ближе к вашим пользователям, и обычно на более быстром оборудовании сервера, чем вы обычно можете себе позволить. Это означает, что ресурсы страницы могут быть загружены в браузер гораздо быстрее, чем если бы они обслуживались с вашего единственного сервера - при условии, что вы обслуживаете свое веб-приложение только с одного сервера в одном центре обработки данных.

Для пользователей интрасети это может не означать повышения скорости, а может фактически представлять проблему, поскольку могут быть установлены брандмауэр и политики безопасности, не позволяющие кому-либо получить доступ к файлу, размещенному в CDN. В этом случае разработчик обычно загружает ресурсы (JS и CSS) и обслуживает их как часть своего приложения.

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

0 голосов
/ 09 июля 2019

Шаблон, в первую очередь, служит демо-приложением.Другими словами, они делают что-то, чтобы показать, что возможно, и вы ожидаете и призываете настроить его под свои нужды.

Когда дело доходит до этого, важно показать, как ссылатьсяресурс из CDN с откатом к локальной версии ресурса, если это не удастся.Он также демонстрирует использование тега environment для условного включения / исключения HTML в зависимости от среды, в которой он развернут.

Что касается cdnjs.cloudflare.com, то причины двоякие.Во-первых, это бесплатный общедоступный CDN с широким охватом библиотек CSS и JS, что делает его хорошим выбором по умолчанию.Во-вторых, это то, что используется LibMan, стандартной системой управления библиотеками на стороне клиента в ASP.NET Core.LibMan буквально загружает файлы из cdnjs.cloudflare.com, чтобы поместить их в локальный каталог wwwroot/lib.

Относительно того, почему вы вообще хотите использовать CDN, все зависит от доставки и кэширования.Ваш сайт, как правило, будет расположен на одном сервере в одном месте в мире.Даже если вы разместитесь в одном месте, вы, скорее всего, не будете использовать больше, чем несколько регионов.У провайдеров CDN обычно есть серверы по всему миру, и ресурсы будут доставляться пользователю с ближайшего к ним сервера, что в большинстве случаев приводит к 50 мс или меньше времени отклика.Кроме того, когда дело доходит до общих библиотек, таких как jQuery, Bootstrap и т. Д., Если пользователь ever посетил сайт в Интернете, который извлекает эти библиотеки из CDN, они уже будут кэшировать ресурсы и не будутнужно скачать их снова.CDNJS является одним из самых популярных CDN для библиотек на стороне клиента, поэтому вероятность того, что большинство, если не все библиотеки, от которых зависит ваше приложение, уже будет загружена, что приведет к более быстрому времени загрузки вашего сайта.Если вы обслуживаете что-то вроде jQuery локально, пользователь должен загрузить его заново, даже если он уже скачал его 50 раз с 50 других сайтов.

...