php+js+css缓存,缓存php解析的css、js、txt文件

问题

我正在做一个实验,需要一些帮助。

我已经创建了两个文件。

main-real.css

这是一个标准的普通的ol'css文件,并且

主.css

它由PHP解析并具有

include()

它获取以前的真实css文件。

这是密码

主.css

:

include("main-real.css");

?>

然后我在我的

.htaccess接口

要使用PHP解析此css文件的文件:

AddHandler application/x-httpd-php5 .css

Header Set Content-Type "text/css"

这在运行Apache的PHP 5.2服务器上非常有效。

问题是浏览器似乎没有缓存此文件,或者至少没有返回

304 Not Modified

状态代码,如常规的un PHP解析的CSS文件。

以下是

main-real.css

如果直接访问:

RESPONSE HEADERS

Date..............Thu, 18 Nov 2010 22:10:57 GMT

Server............Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635

Last-Modified.....Thu, 18 Nov 2010 22:10:23 GMT

Etag.............."11b010a-26-4955b0e6671c0"

Accept-Ranges.....bytes

Content-Length....38

Content-Type......text/css

REQUEST HEADERS

Accept.............text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language....en-us,en;q=0.5

Accept-Encoding....gzip,deflate

Accept-Charset.....ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive.........115

Connection.........keep-alive

Cookie.............fc=fcVal=7625790752294348480

If-Modified-Since..Thu, 18 Nov 2010 22:10:23 GMT

If-None-Match......"11b010a-26-4955b0e6671c0"

Cache-Control......max-age=0

下面是解析的PHP的头文件

主.css

:

RESPONSE HEADERS

Date...............Thu, 18 Nov 2010 22:11:11 GMT

Server.............Apache/2.2.14 (Unix) mod_ssl/2.2.14 OpenSSL/0.9.8i DAV/2 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635

X-Powered-By.......PHP/5.2.11

Content-Type.......text/css

Keep-Alive.........timeout=5, max=97

Connection.........Keep-Alive

Transfer-Encoding..chunked

REQUEST HEADERS

Accept.............text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8

Accept-Language....en-us,en;q=0.5

Accept-Encoding....gzip,deflate

Accept-Charset.....ISO-8859-1,utf-8;q=0.7,*;q=0.7

Keep-Alive.........115

Connection.........keep-alive

Cookie.............fc=fcVal=7625790752294348480

Cache-Control......max-age=0

我尝试过用各种方法修改http头,添加max age、last modified和其他一些方法,但都没有成功。我有什么遗漏或误解吗?

解决方案和最终代码

缺少的主要代码是我需要发送

Last-Modified

在include()之前的头。这需要在PHP文件中完成!我以前试过添加

上次修改时间

使用.htaccess

Header set

指令,尽管它添加了适当的头,但它没有触发缓存。

这是我最后的密码

主.css

有着遥远的未来

Expires

标题和

Cache-Control

好办法。

$last_modified = date("D, d M Y H:i:s \G\M\T", filemtime("main-shared.css"));

$expiration = date("D, d M Y H:i:s \G\M\T", strtotime('+1 year'));

header("Cache-Control: public, no-transform");

header("Expires: $expiration");

header("Last-Modified: $last_modified");

include("main-shared.css");

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值