我已经构建了一个小型的PHP/MySQL内部应用程序来托管和排序文档。所有工作都很完美,直到它涉及到更新文件,在这种情况下是一个.PDF文件。当用户更新.PDF时,新文件会按预期在服务器上,旧版本会被删除。如果用户从未打开过旧版本,则他们将获得新版本。
现在的问题是。如果用户在过去的某个时间点打开了较旧版本的.PDF,则当单击链接以查看文档时,他们不会获得较新版本,即使实际上只有新版本在服务器上。
我猜Google Chrome浏览器正在某个地方缓存旧版本的PDF。我该怎么解决这个问题?由于用户数量和每天更新一些文档的次数,要求用户手动清除任何缓存是不切实际的。
3条答案
按热度按时间rlcwz9us1#
你有四个选择:
1.每次更新时更改文件名
1.总是通过添加动态GET参数来生成唯一的HREF
选项1-在100%的情况下有效。可能很难维持
选项2-在99%的情况下有效
选项3-在99%的情况下有效
选项4-在99%的情况下有效
pn9klfpd2#
在HTML5中,您可以强制浏览器not缓存某些域(或者根本不缓存,或者使用缓存(如果可用)等)-请参阅https://developer.mozilla.org/en-US/docs/HTML/Using_the_application_cache
将此添加到您的
<!doctype html><head>
-部分:在您的文档根目录
my.cache
上创建一个文件,其中包含以下内容:这将强制不缓存任何内容。
如果你有一个路径到你的pdf下载,使用它代替(所以其他文件从您的网站除了PDF的将被缓存)
在浏览器中尝试此操作。记得先清除该高速缓存!:)当您发现每个PDF都被下载时,无论文件名或标题如何。
8wigbo563#
我将完成第三个选项,通过附加一个动态参数的链接,将下载文件,即:
应该会绕过该高速缓存。