首页 / 缓存 / 我无法缓存我的PHP重写CSS文件
我无法缓存我的PHP重写CSS文件
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了我无法缓存我的PHP重写CSS文件,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1868字,纯文字阅读大概需要3分钟。
内容图文
我有一个在htaccess中重命名为css文件的php文件.原因是因为我有一些样式和颜色,这些样式和颜色会根据某些管理选项而更改.
无论如何,我试图允许访问者的浏览器缓存文件.这是我所拥有的:
style.php:
header("Content-type: text/css; charset: UTF-8");
// Start normal CSS styles...
.htaccess:
RewriteRule ^assets/css/min/([a-zA-Z0-9\._-]+)/([a-zA-Z0-9\._-]+)/([a-zA-Z0-9\._-]+)\.css$assets/css/min.php?style=$1&layout=$2&ver=$3 [L,QSA]
# Compress
AddOutputFilterByType DEFLATE text/css
# Cache for 1 week
<FilesMatch ".(css)$">
Header set Cache-Control "max-age=604800"
</FilesMatch>
<IfModule mod_expires.c>
ExpiresActive on
ExpiresByType text/css "access plus 1 week"
</IfModule>
在页面标题中:
<link rel="stylesheet" href="http://example.com/assets/css/min/blue/flat/0.9.2.css">
每次加载新页面时,都会请求页面内容.这些是我收到的标头:
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection: Keep-Alive
Content-Encoding: gzip
Content-Length: 13881
Content-Type: text/css; charset: UTF-8;charset=UTF-8
Date: Sat, 20 Feb 2016 22:49:17 GMT
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Keep-Alive: timeout=5, max=94
Pragma: no-cache
Server: Apache/2.4.16 (Unix) OpenSSL/1.0.1p PHP/5.6.12 mod_perl/2.0.8-dev Perl/v5.16.3
Vary: Accept-Encoding,User-Agent
X-Powered-By: PHP/5.6.12
解决方法:
您的mod_expires配置适用于基于网络服务器感知的文件模仿类型的文件.除非您对其他地方的网络服务器配置做了一些大的改动,否则网络服务器将不会将text / CSS模仿类型与以.php结尾的文件相关联(如果这样做,则将需要进一步的黑客攻击才能使它们由PHP解析器处理) ).您的PHP脚本设置的标头与此过程无关.
虽然可以强制mod_expires向响应中添加缓存头,但是您还必须使用mod_headers来删除PHP设置的值;当浏览器收到多个冲突的缓存指令时,它将求助于它们中表示的最短的到期时间.
因此,要使内容可缓存,您应该直接从PHP脚本发出缓存信息.例如.
header('Cache-control: max-age=604800; private');
但是将到期时间基于访问时间并不是最佳解决方案.
内容总结
以上是互联网集市为您收集整理的我无法缓存我的PHP重写CSS文件全部内容,希望文章能够帮你解决我无法缓存我的PHP重写CSS文件所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。