如何防止Apache httpd(MAMP)中的http文件缓存

dmc*_*mck 131 apache .htaccess mamp http-headers

我在MAMP中开发单页Javascript应用程序.我的JavaScript和HTML模板文件正在请求之间进行缓存.

是否有一种简单的方法在MAMP中指示我想阻止http文件缓存?可能有.htaccess档案?我在哪里放置.htaccess或修改Mac上的MAMP虚拟主机?

Cha*_*tål 300

试过这个?如果在这两个工作.htaccess,httpd.conf并在一个VirtualHost(通常是放置在httpd-vhosts.conf,如果你已经从你的httpd.conf包括它)

<filesMatch "\.(html|htm|js|css)$">
  FileETag None
  <ifModule mod_headers.c>
     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"
  </ifModule>
</filesMatch>
Run Code Online (Sandbox Code Playgroud)

100%防止文件被缓存

这与Google广告如何使用标头Cache-Control:private,x-gzip-ok ="">类似,以防止代理和客户端缓存广告.

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

如果您使用的扩展名不是.html为那些扩展名,则可以选择为要检索的模板文件添加扩展名.

  • 谢谢,这在.htaccess文件中运行良好.当我检查标题时,我可以看到缓存控制选项,我的文件在请求之间显示的是http 200而不是304,正是我需要的. (2认同)
  • 不要忘记添加LoadModule命令.`LoadModule headers_module lib/modules/mod_headers.so` (2认同)
  • 在Apache / 2.4.12(Ubuntu)中不起作用 (2认同)

Fra*_*mer 5

基于此处的示例:http://drupal.org/node/550488

以下内容可能适用于.htaccess

 <IfModule mod_expires.c>
   # Enable expirations.
   ExpiresActive On

   # Cache all files for 2 weeks after access (A).
   ExpiresDefault A1209600

  <FilesMatch (\.js|\.html)$>
     ExpiresActive Off
  </FilesMatch>
 </IfModule>
Run Code Online (Sandbox Code Playgroud)

  • @dmck:删除`<IfModule mod_expires.c>`和`</ IfModule>`部分..如果没有启用mod_expires,你将得到一个错误而不是那些被忽略的指令. (4认同)