仅将CDN用于Bootstrap JS部件有任何弊端吗?

时间:2019-02-13 11:59:07

标签: javascript twitter-bootstrap sass bootstrap-4 cdn

我正在使用自定义样式设置Bootstrap主题,方法是使用官方documentation中所述的源SASS文件的本地副本,并将其导入custom.scss文件中。

我主要愿意自定义外观,而不是功能;因此,例如:颜色,版式和所谓的“ Sass options”。

在这种情况下,在我的项目中通过使用CDN而不是从本地提供它来导入Bootstrap的JS部分(我特别指的是bootstrap.bundle.min.js)是否有任何弊端或可能的问题? ?

编辑:请注意,我并不是在问从CDN加载资源与从本地加载有何不同,我只是在问是否从CDN加载Boostrap的一部分以及从CDN加载Boostrap的一部分?本地可能会导致问题或意外行为。


这可能是一个愚蠢的问题,我有把握地确定自己可以做到这一点而不会引起任何问题,但是我想从比我更专业的人那里得到一些反馈。

1 个答案:

答案 0 :(得分:0)

如果可以,您应该自己托管JS。

由于引导程序在其示例“如何使用”代码中使用完整性参数,因此,如果CDN遭到破坏,则不必担心跨站点脚本攻击(除非您将它们留在代码中)。文件将不会被加载。 但是,这仍然不是您想要的东西:如果他们的CDN受到攻击或他们的服务器崩溃了,您将无法再加载JS,并且您的应用程序的某些部分可能变得不可用。

但是,您可以首先尝试从CDN提供服务,如果不能,请为用户提供本地版本。这样,您可以利用缓存并在引导服务器停机时进行保存。以下是摘自freecodecamp的一小段摘录:

<script>
  if (! $.fn.modal) {
    document.write('<script src="YOUR JS LOCATION"></script>');
  }
</script>

您应将其放在包含引导CDN的行的下方。

代码仅检查引导程序中的功能是否可用,如果不从本地服务器中加载该功能。