¿Cómo recurrir a la hoja de estilo local cuando falla CDN?

Este artículo nos enseñará a recurrir a la hoja de estilo local si falla CDN. Los programadores utilizan las bibliotecas de la interfaz de usuario incorporando CDN a la plantilla HTML para diseñar la aplicación, pero a veces no se carga debido a algún error. En este escenario, podemos crear el archivo CSS predeterminado y cargar estilos desde ese archivo. 

Problema: los usuarios pueden revisar el siguiente código y verificar que cuando la hoja de estilo CDN no se cargue, cómo se ve la interfaz de usuario.

HTML

<!DOCTYPE html>
<html lang="en">
  
<head>
    <title>Fallback StyleSheet</title>
  
    <!--bootstrap fake CDN-->
    <link rel="stylesheet" href=
"https://cdn.jselivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" />
  
    <!--users can try this bootstrap original CDN 
        and check style difference-->
    <!--<link rel="stylesheet" href=
"https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"/>-->
</head>
  
<body>
    <div class="content">
        <h2>GeeksforGeeks</h2>
        <button class="btn btn-primary" 
                type="submit">Geeks</button>
        <button class="btn btn-primary" 
                type="submit">for</button>
        <button class="btn btn-primary" 
                type="submit">Geeks</button>
    </div>
</body>
  
</html>

Producción:

 

En el resultado anterior, los usuarios pueden ver que si no recurrimos a la hoja de estilo predeterminada cuando ocurre un error con CDN, todo el estilo habrá desaparecido y la interfaz de usuario de la aplicación se verá rara. 

Podemos tener diferentes enfoques para recurrir a la hoja de estilo local para superar el problema anterior:

Enfoque 1: en este enfoque, cambiaremos la URL de la hoja de estilo a la ruta de la hoja de estilo predeterminada si se produce algún error. 

Ejemplo: el usuario debe agregar el siguiente código en los archivos respectivos.

  • Index.html: en este archivo, usamos el atributo onerror de <link> para volver a la hoja de estilo predeterminada cuando se produce un error.

HTML

<!DOCTYPE html>
<html lang="en">
  
<head>
    <title>Fallback StyleSheet</title>
    <link rel="stylesheet" href=
"hrap@3.3.7/dist/css/bootstrap.min.css"
        onerror="this.onerror=null;this.href='style.css';" />
  
    <!-- original CDN -->
    <!-- <link rel="stylesheet" href=
"https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css"
        integrity=
"sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" 
        crossorigin="anonymous"> -->
</head>
  
<body>
    <div class="content">
        <h2>GeeksforGeeks</h2>
        <button class="btn btn-primary" 
                type="submit">Geeks</button>
        <button class="btn btn-primary" 
                type="submit">for</button>
        <button class="btn btn-primary" 
                type="submit">Geeks</button>
    </div>
</body>
  
</html>
  • Style.css: en este archivo, hemos agregado el estilo CSS predeterminado. Es la hoja de estilo local.

CSS

body {
    font-family: Arial;
}
  
.content {
    color: green;
    text-align: center;
    border: 10px dotted red;
    height: 200px;
    width: 400px;
}
  
h2 {
    font-size: 30px;
}
  
button {
    display: inline-block;
    width: 120px;
    height: 40px;
    background-color: orange;
    color: yellow;
    font-size: 20px;
    border-radius: 12px;
    border: none;
}

Producción: 

 

Los usuarios pueden ver en el resultado anterior cómo se aplican los estilos del archivo CSS local cuando falla la carga de CDN.

Enfoque 2: En este enfoque, usaremos JavaScript. Crearemos el JavaScript que se llamará cuando ocurra algún tipo de error en la hoja de estilo CDN. Nuestra función creará una nueva etiqueta < link> y establecerá la ruta de la hoja de estilo predeterminada como un valor del atributo href . Después de eso, agregaremos la etiqueta de enlace recién creada en la sección < head> .

Ejemplo: agregue el siguiente código a los archivos respectivos.

  • Index.html: en este archivo, hemos agregado la función javascript a la que llamamos usando el atributo onerror .

HTML

<!DOCTYPE html>
<html lang="en">
  
<head>
  
    <title>Fallback StyleSheet</title>
    <link rel="stylesheet" href=
"hrap@3.3.7/dist/css/bootstrap.min.css" 
          onerror="setonFallBack()" />
  
</head>
  
<body>
    <div class="content">
        <h2>GeeksforGeeks</h2>
        <button class="btn btn-primary" 
                type="submit">Geeks</button>
        <button class="btn btn-primary" 
                type="submit">for</button>
        <button class="btn btn-primary" 
                type="submit">Geeks</button>
    </div>
  
    <script type="text/javascript">
  
        // function set default css file when CDN fails
        function setonFallBack() {
  
            // create new link tag
            const link = document.createElement('link');
            link.href = 'style.css';
            link.rel = 'stylesheet';
  
            // add link tag to head section
            document.getElementsByTagName('head')[0]
              .appendChild(link);
        }
  
    </script>
</body>
  
</html>
  • Style.css: en este archivo, hemos agregado el estilo CSS predeterminado. Es la hoja de estilo local.

CSS

body {
    font-family: Arial;
}
  
.content {
    color: green;
    text-align: center;
    border: 10px dotted red;
    height: 200px;
    width: 400px;
}
  
h2 {
    font-size: 30px;
}
  
button {
    display: inline-block;
    width: 120px;
    height: 40px;
    background-color: orange;
    color: yellow;
    font-size: 20px;
    border-radius: 12px;
    border: none;
}

Producción:

 

Los usuarios pueden ver en el resultado anterior cómo se aplican los estilos del archivo CSS local cuando falla la carga de CDN.

Publicación traducida automáticamente

Artículo escrito por shubhamvora05 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *