Como evitar o armazenamento em cache do arquivo http no Apache httpd (MAMP)

Estou desenvolvendo um aplicativo Javascript de uma única página no MAMP. Meus arquivos de modelo JavaScript e HTML estão sendo armazenados em cache entre as solicitações.

Existe uma maneira simples de indicar no MAMP que eu quero evitar o cache de arquivos http? Possivelmente com um arquivo .htaccess ? Onde coloco o .htaccess ou modifico o host virtual para o MAMP no Mac?

Tentei isso? Deve funcionar em ambos .htaccess , httpd.conf e em um VirtualHost (geralmente colocados em httpd-vhosts.conf se você o incluiu no seu 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% impede que os arquivos sejam armazenados em cache

Isso é semelhante a como os anúncios do Google empregam o header Cache-Control: private, x-gzip-ok = “”> para impedir o armazenamento em cache de anúncios por proxies e clientes.

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

E, opcionalmente, adicione a extensão para os arquivos de modelo que você está recuperando se você estiver usando uma extensão diferente de .html para eles.

Baseado no exemplo aqui: http://drupal.org/node/550488

O seguinte provavelmente funcionará em .htaccess

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

Eu tive o mesmo problema, mas eu encontrei uma boa solução aqui: Parar de armazenar em cache para o PHP 5.5.3 no MAMP

Basicamente, localize o arquivo php.ini e comente as linhas do OPCache. Espero que esta resposta alternativa ajude os outros também.

Sem mod_expires , será mais difícil definir headers de expiração em seus arquivos. Para qualquer coisa gerada, você pode certamente definir alguns headers padrão na resposta, fazendo o trabalho de mod_expires assim:

  

(tirada de: resposta do Stack Overflow de @brianegge , onde a solução mod_expires também é explicada)

Agora isso não funcionará para arquivos estáticos , como seus arquivos javascript. Quanto aos arquivos estáticos, existe apenas o apache (sem qualquer módulo de expiração) entre o navegador e o arquivo de origem. Para evitar o armazenamento em cache de arquivos javascript, o que é feito no seu navegador, você pode usar um token random no final da URL do js, ​​algo como ?rd=45642111 , então a url se parece com:

  

Se esta url na página é gerada por um arquivo PHP, você pode simplesmente adicionar a parte aleatória com o PHP. Esta maneira de randomizar url simplesmente anexando parâmetros randoms de string de consulta é a base do upgroup sem configuração de ajax jQuery request por exemplo. O navegador nunca considerará 2 url tendo cadeias de consulta diferentes para ser o mesmo e nunca usará a versão em cache.

EDITAR

Note que você deve testar os mod_headers . Se você tiver mod_headers, talvez você possa definir os headers Expires diretamente com a palavra-chave Header .