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" />
Comentarios recientes