Cómo evitar el almacenamiento en caché de archivos http en Apache httpd (MAMP)

Estoy desarrollando una aplicación de una sola página de JavaScript en MAMP. Mis archivos de plantilla JavaScript y HTML se almacenan en caché entre las solicitudes.

¿Hay una manera simple de indicar en MAMP que quiero evitar el almacenamiento en caché de archivos http? Posiblemente con un archivo .htaccess ? ¿Dónde .htaccess o modifico el host virtual para MAMP en Mac?

¿Intentó esto? Debería funcionar en .htaccess , httpd.conf y en VirtualHost (generalmente ubicado en httpd-vhosts.conf si lo ha incluido desde su httpd.conf)

  FileETag None  Header unset ETag Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate" Header set Pragma "no-cache" Header set Expires "Wed, 11 Jan 1984 05:00:00 GMT"   

100% evita que los archivos se guarden en caché

Esto es similar a cómo los anuncios de Google emplean el encabezado Cache-Control: private, x-gzip-ok = “”> para evitar el almacenamiento en caché de los anuncios por proxies y clientes.

Desde http://www.askapache.com/htaccess/using-http-headers-with-htaccess.html

Y opcionalmente agregue la extensión para los archivos de plantilla que está recuperando si está usando una extensión que no sea .html para esos.

Basado en el ejemplo aquí: http://drupal.org/node/550488

Lo siguiente probablemente funcionará en .htaccess

   # Enable expirations. ExpiresActive On # Cache all files for 2 weeks after access (A). ExpiresDefault A1209600  ExpiresActive Off   

Tuve el mismo problema, pero encontré una buena solución aquí: detener el almacenamiento en caché de PHP 5.5.3 en MAMP

Básicamente, encuentre el archivo php.ini y comente las líneas OPCache. Espero que esta respuesta alternativa también ayude a otros.

Sin mod_expires será más difícil establecer encabezados de caducidad en sus archivos. Para cualquier cosa generada, ciertamente puede establecer algunos encabezados predeterminados en la respuesta, haciendo el trabajo de mod_expires así:

  

(tomado de: Respuesta de Stack Overflow de @brianegge , donde también se explica la solución de mod_expires)

Ahora esto no funcionará para archivos estáticos , como sus archivos javascript. En cuanto a los archivos estáticos, solo hay apache (sin ningún módulo de caducidad) entre el navegador y el archivo fuente. Para evitar el almacenamiento en caché de los archivos javascript, que se realiza en su navegador, puede usar un token aleatorio al final de la URL js, algo así como ?rd=45642111 , por lo que la url se ve así:

  

Si esta url en la página es generada por un archivo PHP, simplemente puede agregar la parte aleatoria con PHP. Esta forma de aleatorizar URL simplemente añadiendo parámetros de cadenas de consulta aleatorias es la configuración base upôn no-cache de la solicitud de jQuery ajax, por ejemplo. El navegador nunca considerará que 2 url tengan cadenas de consulta diferentes para ser iguales, y nunca usará la versión en caché.

EDITAR

Tenga en cuenta que también debe probar mod_headers . Si tiene mod_headers, puede establecer los encabezados Expires directamente con la palabra clave Header .