所以我只是在这里沮丧地发疯。我正在构建一个简单的网站:一个带有链接JavaScript的静态HTML页面。 JS经常更新,我希望能够将新的.js文件上传到服务器 - 我正在使用网络酒店 - 在我的浏览器中重新加载页面并获得新版本。除了我得到旧文件。据我所知,这个问题只发生在我的电脑上。我尝试重新加载页面并禁用Chrome开发人员工具中的JS缓存。如果我等待几分钟并上传新文件,问题似乎就消失了。我没有root访问权限,但可以使用PHP。
如何找到问题的真正原因?
更新:我找到了解决方法;将index.html重命名为index.php并(使用PHP)在JavaScript文件URL中附加一个唯一的数字。像这样:
<script src="trafik.js?a=<?php echo time(); ?>"></script>
这会强制浏览器重新加载文件。然而,我原来的问题仍然存在,因为我没有找到原因,我不知道如何系统地处理这个问题。此外,对于PHP而言,这似乎是一个丑陋的解决方案。
答案 0 :(得分:0)
如果您确实在浏览器中禁用了缓存,则表示缓存版本由服务器提供。因此,这是与Apache(或Nginx或任何http服务器)相关的问题。
也许您可以尝试使用这些规则添加.htaccess文件(需要启用mod_headers,希望它是您网络服务器上的默认设置):
<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>