gpt4 book ai didi

php - 如何使用 HTTP header 缓存动态 CSS?

转载 作者:行者123 更新时间:2023-11-28 10:52:13 25 4
gpt4 key购买 nike

这是 this question 的直接副本,但提供的解决方案不起作用。

作为我维护的 WordPress 插件的一部分,我目前正在使用以下代码吐出一个动态 CSS 文件:

public static function buildCustomCss() {
if (1 == intval(get_query_var(self::$query_var))) {
ob_start();
global $css;
$expires = 60 * 60 * 24 * 365; // cache for a year

header('Pragma: public');
header('Cache-Control: maxage=' . $expires);
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + $expires) . ' GMT');
header('Content-type: text/css');

echo str_replace('>', '>', esc_html($css));
ob_end_flush();
exit;
}
}

使用的 header 值与上面引用的问题中使用的值匹配,但 Chrome Firefox 都拒绝接受缓存请求。我尝试了多台服务器,每台服务器每次都返回一个 200 响应。我希望这会被证明是比将 CSS 放入主页更好的解决方案,但如果我无法让缓存工作,那么它最终会变得更糟。

请求 header 的完整列表(Chrome):

Accept:text/css,*/*;q=0.1
Accept-Encoding:gzip,deflate,sdch
Accept-Language:en-US,en;q=0.8
Cache-Control:max-age=0
Connection:keep-alive
Cookie:<cookie values>
DNT:1
Host:example.org
Referer:http://example.org/
User-Agent:Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.154 Safari/537.36

响应 header 的完整列表(经过编辑以包括经过测试的最新 header ,包括 pragmacache-control 中的 public >):

Cache-Control:no-transform,public,maxage=31536000
Connection:keep-alive
Content-Type:text/css; charset=UTF-8
Date:Sun, 30 Mar 2014 22:55:57 GMT
Expires:Mon, 30 Mar 2015 22:55:56 GMT
Pragma:public
Server:nginx
Transfer-Encoding:chunked

最佳答案

如果你想让浏览器缓存一个文件,你应该将 Cache-control header 设置为 public:

header('Cache-control: public');

关于php - 如何使用 HTTP header 缓存动态 CSS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22751045/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com