【问题标题】:File that includes cache manifest automatically includes itself包含缓存清单的文件自动包含自身
【发布时间】:2012-10-17 09:06:06
【问题描述】:

我有一个网页,其中包含大量我想要缓存的图像。为此,我有一个 PHP 脚本,列出了我需要的图像的路径。最终文档如下所示:

CACHE MANIFEST

NETWORK:
*

CACHE:
uploads/categoriasactuaciones/1.png
uploads/categoriasactuaciones/10.png 
[...]
uploads/riesgos/5.png 
uploads/riesgos/6.png

问题在于,在<html> 标记中包含清单的页面会自动缓存,并且登录逻辑所在的位置。有没有办法禁用它?我在这里做错了吗?

【问题讨论】:

    标签: html browser-cache


    【解决方案1】:

    你可以欺骗浏览器,让浏览器相信它总是一个不同的页面,方法是从你获取页面的任何地方向查询字符串添加一个随机参数。

    例如:

    <a href="page.html?r=<?= /* your random string here */ ?>">Link here</a>
    

    这样浏览器就不会使用缓存的页面,而是发出一个新的请求。

    如果您不想缓存的页面是您的索引页面,这可能不起作用。但是您可以改为在响应标头中设置 Cache-Control 参数,使用 PHP 的 header() 等函数(这当然取决于您的编程语言):

    <?php
    header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
    header("Expires: Sat, 26 Jul 1997 05:00:00 GMT"); // Date in the past
    ?>
    

    此外,如果您使用的是框架,不妨利用框架的缓存配置。

    (来源:http://php.net/manual/en/function.header.php

    【讨论】:

    • 我获取的页面是索引,是通过CodeIgniter加载的,所以不能用。
    猜你喜欢
    • 1970-01-01
    • 2014-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多