2014-01-06 48 views
-1

我在共享的托管Linux服务器上,所以我必须使用.htaccess。我忙于压缩和缓存事物。我其实有两个问题,但首先是我的.htaccess文件中的缓存设置。使用.htaccess缓存 - 一个图像不缓存奇怪

ExpiresActive on 
<FilesMatch "\.(bmp|png|ico|gff|jpg|jpeg|gif|gcf)$"> 
FileETag MTime Size 
ExpiresDefault "now plus 60 minutes" 
</FilesMatch> 

问题1,因此这并缓存这些东西一个PNG文件除外。

现在我的大部分文件都是小写字母,因为我在Linux上,但几个PNG文件已经通过大写字母和大写字母扩展。

奇怪的是,除了名为addon2.PNG之外的所有PNG文件缓存。起初我以为是因为这种情况,但我已经检查过,而且我还有3个带有大写扩展名的PNG文件 - Google Page Speed所说的缓存。那么有什么想法或者Google Page Speed就是B.S.?

和问题2,因为我警惕由于我的主机乱用他们的上光油的问题我添加的东西在时间隐藏一点,等着看我的东西砸了。当我尝试缓存HTML文件时,我的站点的登录/注销功能(用PHP编写)不起作用。

您必须登录并刷新或注销并刷新。我想知道是因为页面HTML是通过PHP文件输出的吗?我所有的主页都是PHP,而我只有几个实际的html文件。但我认为缓存HTML只会使用下面的代码执行htm & html扩展。但它有点像服务器试图缓存PHP文件输出的HTML。我在这里忘了吗?

ExpiresActive on 
ExpiresDefault "now plus 60 minutes" 
ExpiresByType text/html "now plus 60 minutes" 
<FilesMatch "\.(css|bmp|png|ico|htm|gff|html|jpg|jpeg|gif|gcf)$"> 
FileETag MTime Size 
ExpiresDefault "now plus 60 minutes" 
</FilesMatch> 
+1

为图像提供请求和响应标头。 – zerkms

+0

unfortunatley我没有cmd行访问所以使用嗅探器 GET /images/addon2.PNG HTTP/1.1 主机:ksa-codesphere.com 用户代理:Mozilla/5.0(Windows NT 6.1; WOW64; rv:19.0)壁虎/ 20100101火狐/ 19.0 的Referer:http://www.rexswain.com/httpview.html 连接:关闭 接收部首: HTTP/1.1·200·OK(CR)(LF) 日期:·周一,·06·月·2014·01:43:40·GMT(CR)(LF) 服务器:·阿帕奇/ 2(CR)(LF) 上次修改:·太阳,·05·月·2014·03 :21:40·GMT(CR)(LF) ETag的:· “303a685-968b-4ef30a449a0ce”(CR)(LF) 的Accept-范围:·字节(CR)(LF) 内容长度:·38539(CR)(LF) 连接:·close(CR)(LF) 内容类型:·image/png(CR)(LF) (CR)(LF) –

+0

hmmmm我用另一个嗅探器来检查结果和它说没有缓存,当我直接到图像时,而不是页面图像 –

回答

0

你长的解释基本上可以归结为一个PNG图像不被缓存& HTML是不爽快。这可能是因为你说的PNG图像有问题(addon2.PNG)只是被损坏了。但你的问题的问题是你没有提供任何标题来显示输出。

如果您使用的是Linux,只需转到终端并使用curl即可获取标题。例如,这是我怎么能获得与主Google图像上他们的网页发送了头:

curl -I https://www.google.com/images/srpr/logo11w.png 

而且该命令的输出是:

HTTP/1.1 200 OK 
Content-Type: image/png 
Last-Modified: Wed, 09 Oct 2013 01:35:39 GMT 
Date: Tue, 17 Dec 2013 23:39:21 GMT 
Expires: Wed, 17 Dec 2014 23:39:21 GMT 
X-Content-Type-Options: nosniff 
Server: sffe 
Content-Length: 14022 
X-XSS-Protection: 1; mode=block 
Cache-Control: public, max-age=31536000 
Age: 1647616 
Alternate-Protocol: 443:quic 

所以你的情况只需要输入这个命令还记得把它设置为图像,像这样的现实路径:

curl -I https://url/to/your/site/addon2.PNG 

又得罪了你们所知道的是缓存,你希望它的东西比较头。

另外,ExpiresDefault & Cache-Control有时可以稍微相互冲突。因此,请检查这两个值,看看您的主机正在设置的是什么,而您的设置是.htaccess

而且对此:

所以任何想法或者是谷歌网页速度只是学士学位?

所有这些网页基准测试工具有不同的用处。一般而言,对于您所面对的具体问题,他们不是B.S.但完全没用。这就像你在一辆汽油漏油车里&汽车中的一些自动系统正在告诉你改变你的机油。你不需要“换油”,你需要找到泄漏&插上它,让油留在!

因此,在你的情况下,最好的选择是使用像curl这样的Unix工具来检查头部输出是否为&调整/调整,直到你做对了。

编辑另外,请看看这个漂亮的深入和有用的caching guide from Google

+0

是啊我不打算做他们说的所有事情,并且真正的一个PNG文件对于我来说不是一个大问题,一个拥有数千个IMG的网站却是一件奇怪的事情,不会离开我的脑袋大声笑。 html的事情,但是我真的很想找出最 –

+0

哦想补充的是,一些HTML文件我也有,想缓存不使用我用 –

+0

将为链接 –