首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何防止浏览器缓存

问如何防止浏览器缓存
EN

Stack Overflow用户
提问于 2011-06-12 09:09:23
回答 2查看 255关注 0票数 3

我正在做facebook应用程序开发。真正让我恼火的是,当我改变我的CSS样式表/添加一个javascript函数时,这是随机的。浏览器根本不会反映更改。这真的很烦人,因为我永远看不到我刚才所做的更改。

例如。我更改了我的CSS样式表,以便将img1从100px移动到50px。但是在firfox/chrome中,img从来没有移动过。

我在我的一个脚本中添加了一个javascript函数a()。但是浏览器的控制台一直告诉我没有定义a()。我已经检查了代码10次,没有错误。

谁能告诉我这里可能存在的问题是什么以及如何解决它?

我使用我的mac作为托管服务器btw

谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-06-12 09:15:20

您可以将时间戳或其他唯一字符串添加到不希望缓存的文件的文件名中,可以在实际文件名中添加,也可以作为GET参数添加:

代码语言:javascript
复制
<link rel="stylesheet" type="text/css" 
      href="http://cdn.sstatic.net/stackoverflow/all.css?v=4fd8a9d8937d">

根据您用来为页面提供服务的服务器端语言,您可以执行以下操作:

PHP (使用filemtime -返回文件的修改时间):

代码语言:javascript
复制
<link rel="stylesheet" type="text/css" 
      href="http://cdn.sstatic.net/stackoverflow/your_css_file.css?v=<?php echo filemtime('/your_css_file.css'); ?>">

Ruby (使用File.mtime返回文件的修改时间):

代码语言:javascript
复制
<link rel="stylesheet" type="text/css" 
      href="http://cdn.sstatic.net/stackoverflow/your_css_file.css?v=<% print File.new("testfile").mtime.to_time.to_i('/your_css_file.css'); %>">

如果您使用文件的修改时间,则仅当文件已被修改时,才会强制用户再次下载该文件。

票数 5
EN

Stack Overflow用户

发布于 2011-06-12 09:18:05

在包含js/css文件时,请将时间戳作为参数包含在内,如下所示:

代码语言:javascript
复制
<link rel="stylesheet" href="css/screen.css?<?php echo time(); ?>" media="all" 
type="text/css" /> 
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6319505

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档