For most sites you want to get the benefits of a CDN, but it is still a single point of failure. I came across this pattern recently though that allows you to fail over to a local file if the CDN library doesn’t load. Would probably have to take a different approach with CSS libraries though.

<!-- try to download from CDN -->
<script src=""></script>
<!-- if failed, switch to local copy -->
<script>window.jQuery || document.write('<script src="local_server_path/jquery.min.js"></script>')</script>

Something I hope to explore more very soon is webpack, which might make this trick obsolete.

Update: It took me a while to find where I had originally found this idea, but I came across it again. Credit: They also have examples for several other popular client-side js libraries.