为什么默认 Asp.Net 核心引用 'cdnjs.cloudflare.com'?
Why by default Asp.Net Core references 'cdnjs.cloudflare.com'?
我通过模板创建了一个 Asp.Net 核心项目(见下图)。
文件 "Pages/Shared/_ValidationScriptsPartial.cshtml" 引用了 url“https://cdnjs.cloudflare.com”。
在我们的网络环境中,引用外部资源会出现问题,因此我们将文件复制到项目中。
我想知道为什么默认模板提供这样的代码?有人可以向我解释仅通过 Intranet 业务引用 cloudflare 的优势吗
请申请?我是网络开发的初学者,所以我想知道这是否是最佳做法?
非常感谢您的努力!
这是我使用的模板:
tl;dr:Clouflare(和其他 CDN)有助于提高页面加载速度
Cloudflare 是一个 CDN(内容分发网络),这意味着它们可以托管大量项目使用的常见 JavaScript 和 CSS 文件。
每当有人访问您的 Web 应用程序时,他们的浏览器都必须转到您的源服务器(提供应用程序的服务器)。在大多数 Extranet 情况下,这可能意味着从用户计算机到您的服务器的许多跃点。但是 Cloudlfare、Akami 和 Azure CDN(其他 CDN)等服务允许您托管这些文件 "on the edge"。这是 "physically closer to the user".
的奇特营销术语
(文件只能以最慢组件的速度从服务器下载,因此将它们放置在离用户较近的位置意味着他们不必走那么远就可以获取文件)
基本上,这些服务在世界各地拥有数百台服务器,它们可以将您的文件托管在离用户更近的地方,而且通常在比您通常能够负担得起的速度更快的服务器硬件上。这意味着页面资源加载到浏览器的速度比从单个服务器提供的速度快得多 - 假设您只从一个数据中心的一台服务器提供 Web 应用程序。
对于 Intranet 用户,这可能并不代表速度提升,实际上可能代表挑战,因为可能有防火墙和安全策略阻止某人访问托管在 CDN 上的文件。在这种情况下,开发人员通常会下载资源(JS 和 CSS)并将它们作为其应用程序的一部分提供。
我敢猜测 Microsoft 已经在其模板中包含了指向公共库的 Cloudflare 链接,因为大多数开发人员将在开放环境或允许访问 CDN 的网络上托管他们的应用程序。
模板首先是用作演示应用程序。换句话说,他们正在做一些事情来展示什么是可能的,我们希望并鼓励您根据自己的需要对其进行自定义。
说到这里,重点是展示如何从 CDN 引用资源并回退到资源的本地版本,如果失败的话。它还展示了 environment
标签的使用,根据部署到的环境有条件地 include/exclude HTML。
就cdnjs.cloudflare.com
而言,原因是two-fold。首先,它是一个免费的 public CDN,广泛覆盖 CSS 和 JS 库,使其成为不错的默认选择。其次,它是 ASP.NET Core 中默认的 client-side 图书馆管理系统 LibMan 使用的。 LibMan 从字面上从 cdnjs.cloudflare.com
下载文件并将它们放在本地 wwwroot/lib
目录中。
至于您为什么要使用 CDN,这全都与边缘交付和缓存有关。您的网站通常位于世界上一个位置的一台服务器上。即使您 co-locate,您也可能不会使用超过几个区域。 CDN 提供商一般在全球都有服务器,资源会从离用户最近的服务器传送给用户,导致大多数情况下响应时间在 50ms 或更短。此外,当涉及 jQuery、Bootstrap 等公共库时,如果用户 曾经 访问过从互联网上提取这些库的站点CDN,他们已经缓存了资源,不需要再次下载。 CDNJS 是 client-side 库中最受欢迎的 CDN 之一,因此很有可能您的应用程序所依赖的大部分(如果不是全部)库都已下载,从而加快您网站的加载时间。如果您在本地提供类似 jQuery 的内容,用户必须重新下载它,即使他们已经从其他 50 个站点下载了 50 次。
我通过模板创建了一个 Asp.Net 核心项目(见下图)。 文件 "Pages/Shared/_ValidationScriptsPartial.cshtml" 引用了 url“https://cdnjs.cloudflare.com”。 在我们的网络环境中,引用外部资源会出现问题,因此我们将文件复制到项目中。
我想知道为什么默认模板提供这样的代码?有人可以向我解释仅通过 Intranet 业务引用 cloudflare 的优势吗 请申请?我是网络开发的初学者,所以我想知道这是否是最佳做法?
非常感谢您的努力!
这是我使用的模板:
tl;dr:Clouflare(和其他 CDN)有助于提高页面加载速度
Cloudflare 是一个 CDN(内容分发网络),这意味着它们可以托管大量项目使用的常见 JavaScript 和 CSS 文件。
每当有人访问您的 Web 应用程序时,他们的浏览器都必须转到您的源服务器(提供应用程序的服务器)。在大多数 Extranet 情况下,这可能意味着从用户计算机到您的服务器的许多跃点。但是 Cloudlfare、Akami 和 Azure CDN(其他 CDN)等服务允许您托管这些文件 "on the edge"。这是 "physically closer to the user".
的奇特营销术语(文件只能以最慢组件的速度从服务器下载,因此将它们放置在离用户较近的位置意味着他们不必走那么远就可以获取文件)
基本上,这些服务在世界各地拥有数百台服务器,它们可以将您的文件托管在离用户更近的地方,而且通常在比您通常能够负担得起的速度更快的服务器硬件上。这意味着页面资源加载到浏览器的速度比从单个服务器提供的速度快得多 - 假设您只从一个数据中心的一台服务器提供 Web 应用程序。
对于 Intranet 用户,这可能并不代表速度提升,实际上可能代表挑战,因为可能有防火墙和安全策略阻止某人访问托管在 CDN 上的文件。在这种情况下,开发人员通常会下载资源(JS 和 CSS)并将它们作为其应用程序的一部分提供。
我敢猜测 Microsoft 已经在其模板中包含了指向公共库的 Cloudflare 链接,因为大多数开发人员将在开放环境或允许访问 CDN 的网络上托管他们的应用程序。
模板首先是用作演示应用程序。换句话说,他们正在做一些事情来展示什么是可能的,我们希望并鼓励您根据自己的需要对其进行自定义。
说到这里,重点是展示如何从 CDN 引用资源并回退到资源的本地版本,如果失败的话。它还展示了 environment
标签的使用,根据部署到的环境有条件地 include/exclude HTML。
就cdnjs.cloudflare.com
而言,原因是two-fold。首先,它是一个免费的 public CDN,广泛覆盖 CSS 和 JS 库,使其成为不错的默认选择。其次,它是 ASP.NET Core 中默认的 client-side 图书馆管理系统 LibMan 使用的。 LibMan 从字面上从 cdnjs.cloudflare.com
下载文件并将它们放在本地 wwwroot/lib
目录中。
至于您为什么要使用 CDN,这全都与边缘交付和缓存有关。您的网站通常位于世界上一个位置的一台服务器上。即使您 co-locate,您也可能不会使用超过几个区域。 CDN 提供商一般在全球都有服务器,资源会从离用户最近的服务器传送给用户,导致大多数情况下响应时间在 50ms 或更短。此外,当涉及 jQuery、Bootstrap 等公共库时,如果用户 曾经 访问过从互联网上提取这些库的站点CDN,他们已经缓存了资源,不需要再次下载。 CDNJS 是 client-side 库中最受欢迎的 CDN 之一,因此很有可能您的应用程序所依赖的大部分(如果不是全部)库都已下载,从而加快您网站的加载时间。如果您在本地提供类似 jQuery 的内容,用户必须重新下载它,即使他们已经从其他 50 个站点下载了 50 次。