Php 如何设置http头缓存?

Php 如何设置http头缓存?,php,Php,我需要使用http头将javascript和页面详细信息存储到浏览器缓存中 有人能帮我拿这个吗 非常感谢只需在标题中设置过期日期如何- header("Cache-Control: public"); header("Expires: Tue, 08 Oct 2013 00:00:00 GMT"); // Date in the future 应该注意的是,现代浏览器在缓存资源方面做得很好。通常这些方法用于强制重新加载资源;阻止浏览器缓存。您可以使用HTML元: 或 PHP标题: heade

我需要使用http头将javascript和页面详细信息存储到浏览器缓存中

有人能帮我拿这个吗


非常感谢

只需在标题中设置过期日期如何-

header("Cache-Control: public");
header("Expires: Tue, 08 Oct 2013 00:00:00 GMT"); // Date in the future

应该注意的是,现代浏览器在缓存资源方面做得很好。通常这些方法用于强制重新加载资源;阻止浏览器缓存。

您可以使用HTML元:

PHP标题:

header("Cache-Control: public"); // HTTP/1.1
header("Expires: Tue, 08 Oct 2013 00:00:00 GMT"); // Date in the future

来源:

我认为对于您想要缓存的确切内容存在一些混淆。这里提到两个项目-

  • 页面本身包含所有HTML元素和对外部文件的引用
  • HTML文档引用的JavaScript文件
  • 要缓存第一项(页面),使用PHP设置标题应该缓存页面的HTML内容

    header("Cache-Control: public");
    header("Expires: Tue, 08 Oct 2013 00:00:00 GMT"); // Date in the future
    
    这将缓存页面的内容,但不一定是页面引用的文件。例如,如果您的HTML文件中有以下代码-

    <script src="http://domain/some/js/file.js" type="javascript" ></script>
    
    现在,在
    另一个_file.php
    中,您需要加载JavaScript文件并用适当的头“回显”它-

    $file = '/absolute/path/to/your_script.js';
    if (file_exists($file)) {
        header('Content-Type: text/javascript');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);
        exit();
    }
    

    将过期日期设置为过去将强制浏览器重新加载资源-与缓存完全相反..对此表示抱歉。阅读手册的错误部分,对标题不太熟悉。您的答案现在看来是正确的。回答问题时请小心,正确阅读。此外,仅从文档中复制粘贴也不是一个好的答案。我使用了与您在此处发布的相同的代码,但我得到的结果如下,并且它不起作用,[HTTP\u PRAGMA]=>无缓存[HTTP\u cache\u CONTROL]=>无缓存您如何引用JavaScript文件?抱歉,我不明白你在这里的确切意思。。。。我通过script标签引用了javascript文件……这里有点混乱。这里设置的是正在加载的HTML页面的缓存控件。如果你想为特定的文件设置特定的标题,你可能必须通过PHP手动发送你的JavaScript文件。。我之前有什么需要补充的吗?谢谢你的耐心和及时的帮助。。我尝试了其他方法,比如使用metatag。。。但这并没有成功
    $file = '/absolute/path/to/your_script.js';
    if (file_exists($file)) {
        header('Content-Type: text/javascript');
        header('Content-Length: ' . filesize($file));
        ob_clean();
        flush();
        readfile($file);
        exit();
    }