Skip to main content

Para evitar problemas con el caché del servidor y del usuario se puede versionar los archivos css y js. Para hacer esto se presentan dos métodos:

Método 1 (variables GET)

al llamar un archivo js o css se puede ingresar ver como variable GET de la siguiente manera

<link rel="stylesheet" id="main-css" href="/assets/css/style.css?ver=1.1" type="text/css">

y para js:

<script type="text/javascript" id="main-js" src="/assets/main.js?ver=1.1"></script>

 

Método 2 (modificando .htaccess)

al llamar un archivo js o css se puede ingresar ver como variable GET de la siguiente manera

<link rel="stylesheet" id="main-css" href="/assets/css/style.12345.css" type="text/css">

y para js:

<script type="text/javascript" id="main-js" src="/assets/main.12345.js"></script>

Adicionalmente en el archivo .htaccess se debe establecer el siguiente redireccionamiento para que reconozca style.12345.css como style.css:

# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

# Para convertir main.123456.css a main.css internamente
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.+)\.([0-9]+)\.(js|css)$ $1.$3 [L]

Corolario

En caso de que se quierea establecer la versión de manera constantemente cambiante se puede utilizar la función php

<?php
$fecha = new DateTime();
$ver = $fecha->getTimestamp()
?>

Y establecer dentro de la variable GET lo siguiente:

<link href="/assets/main.css?ver=<?=$ver?>" rel="stylesheet" type="text/css" />

O en le caso para .htaccess lo siguiente:

<link href="/assets/main.<?=$ver?>.css" rel="stylesheet" type="text/css" />