我正在使用自定义样式设置Bootstrap主题,方法是使用官方documentation中所述的源SASS文件的本地副本,并将它们导入到custom.scss
文件中。
我主要愿意自定义外观,而不是功能;因此,例如:颜色,版式和所谓的“ Sass options”。
在这种情况下,通过使用CDN(而不是从本地提供)将Bootstrap的JS部分(我特别指的是bootstrap.bundle.min.js
)导入项目中是否有任何弊端或可能出现的问题?
编辑:请注意,我不是在问从CDN加载资源与从本地加载资源有何不同,我只是在问是否从CDN加载Boostrap的一部分以及从本地加载一部分Boostrap会导致问题或意外行为。
这可能是一个愚蠢的问题,我有把握地确定自己可以做到这一点而不会引起任何问题,但是我希望得到比我更专业的人的一些反馈。
最佳答案
如果可以,您应该自己托管JS。
由于引导程序在其示例“如何使用”代码中使用完整性参数,因此,如果CDN遭到破坏,则不必担心跨站点脚本攻击(除非您将它们留在代码中)。文件将不会被加载。
但是,这仍然不是您想要的东西:如果他们的CDN受到攻击或他们的服务器崩溃了,您将无法再加载JS,并且您的应用程序的某些部分可能变得不可用。
但是,您可以首先尝试从CDN提供服务,如果无法实现,请为用户提供本地版本。这样,您可以利用缓存并在引导服务器停机时进行保存。以下是摘录自freecodecamp的一小段内容:
<script>
if (! $.fn.modal) {
document.write('<script src="YOUR JS LOCATION"></script>');
}
</script>
您应该将其放在包含引导CDN的行下面。
该代码仅检查引导程序中的功能是否可用,如果不从本地服务器中加载该功能。
关于javascript - 仅将CDN用于Bootstrap JS部件有任何弊端吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54669699/