【问题标题】:How to set cached for css and javascript如何为 css 和 javascript 设置缓存
【发布时间】:2016-09-21 08:52:47
【问题描述】:

所以我一直在拼命寻找一种方法来设置我的网站缓存过期。我想设置 css 和 js 过期,但我找不到任何有用的信息。我尝试使用

<meta http-equiv="Pragma" content="no-cache" />

但它只是不起作用。网上的大部分资料都只是谈论 Apache、xml 等,但我不使用它们。有没有办法使用 php 或 html 实现过期?它是如何完成的?

【问题讨论】:

  • 你看过这个post了吗?
  • @dtlvd 是的,但它不是 html 也不是 php。它说 htaccess,我确实尝试过,但它仍然不起作用。
  • 您是否使用 Apache 来托管您的网络应用程序?
  • 随心所欲地尝试,最终由用户浏览器来选择要缓存的内容。但是,您始终可以在 PHP 中传递 header(),这与 Apache 所做的相同。
  • 我同意@Tigger,但默认情况下,您可以使用 Apache 进行配置,如果浏览器没有“覆盖”Apache 配置应该是有效的。

标签: javascript php html .htaccess caching


【解决方案1】:

许多不同的方法可以做到这一点。下面只是一个简单的例子。

名为 test.css 的 CSS 文件(对 Javascript 执行相同操作)。

body { background:#abc }

一个用于呈现请求的 CSS 或 Javascript 的名为 t.php 的 PHP 文件,其中包括无缓存请求标头:

<?php

header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

// use a switch statement for basic checking and flexibility  
switch($_SERVER['PATH_INFO']) {
    case '/css':
        echo file_get_contents('./test.css');
        exit;
    case '/js':
        echo file_get_contents('./test.js');
        exit;
}
?>

以及 HTML/PHP 文件的头部部分

<head>                              
<link rel="stylesheet" href="t.php/css" />
<script src="t.php/js"></script>
</head>                                         

【讨论】:

  • 太好了,目前为止最好的。但是我的css有问题。它不链接css。它适用于 javascript。
  • @DanielOMensah 这很可能是文件路径问题。您可以通过直接访问 URI 进行测试。如果你让我知道 CSS 和 HTML / PHP 文件的路径和文件名,我会更新答案。
猜你喜欢
  • 2011-02-01
  • 2012-08-24
  • 2017-06-19
  • 2011-04-10
  • 1970-01-01
  • 1970-01-01
  • 2011-10-11
  • 1970-01-01
  • 2013-01-05
相关资源
最近更新 更多