编辑:我当前的元标记是否会导致缓存问题?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"><!-- InstanceBegin template="/Templates/homepage.dwt" codeOutsideHTMLIsLocked="false" -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
我有一个网站上传到webhost iPower。我的HTML页面链接了一个外部javascript文件(称为AppLogic.js)。我发现当我将新版本的AppLogic.js上传到webhost时,旧版本(以前上载的版本)是从服务器而不是我最新的AppLogic.js上载服务的。在我上传新版本的AppLogic.js后,这种情况发生了大约5分钟(有时甚至更长),然后在那段时间后开始提供正确的AppLogic.js文件(最新版本)。
你知道为什么会这样吗?我怎么能阻止这个?
我有一种感觉,javascript文件缓存在IE,Firefox&amp;他们不是每次都下载新文件。我试图修复只发生在从webhost提供的实际网页上的错误(错误不在本地发生),这意味着我不断调整我的AppLogic.js文件,然后将其上传到网络服务器,看看更改是否修复了错误。它的速度慢没有这个血腥缓存的.js文件很烦人,但是这个问题只是上帝该死的阻止我修复bug!
关于究竟出了什么问题的任何建议&amp;如何修复它将非常有帮助
我尝试了以下所有事情,但不要阻止自己得到错误的.js文件:
- 我试过按CTRL,SHIFT&amp;在Firefox中删除,然后删除所有历史记录&amp;缓存
- 在IE中按CTRL 12打开开发人员工具,然后选择缓存,然后选择始终从服务器加载,删除缓存,删除域cookie&amp;所有其他的。这有时只会令人沮丧
- 使用程序CCleaner删除我的所有cookie&amp;其他IE缓存数据。有时工作
- 重启我的整个笔记本电脑。工作很多但是非常耗费时间
答案 0 :(得分:1)
您可以通过添加AppLogic.js?123456789
(数字为时间)来改变您申请JS文件的方式。这样,您就强制浏览器始终加载新文件!
答案 1 :(得分:0)
您还可以在.htaccess
中添加以下内容<FilesMatch "AppLogic.js$">
Header unset Cache-Control
Header unset Expires
Header unset Last-Modified
FileETag None
Header unset Pragma
</FilesMatch>
它不会为用户缓存文件...你可以尝试添加它一段时间然后删除它因为你不想总是提供文件...我们想要一些CACHE;)
SiteSafeNL解决方案效果很好,尝试声明一个全局变量版本,然后在每个网站上更新AppLogic.js?v = 1.0.0然后更新AppLogic.js?v = 1.0.1等... < / p>