2015-11-07 82 views
0

我新来这里很抱歉,如果这是在错误的类别或类似的东西。现在解决我的问题。我有一个网站:www.windowstaan​​.pe.hu这也开启在移动应用程序,所以为了使其在.htaccess加载快,我已经启用了高速缓存,这里是它的代码:如何缓存图像一年,但HTML/PHP只有24小时

## EXPIRES CACHING ## 
<IfModule mod_expires.c> 
ExpiresActive On 
ExpiresByType image/jpg "access 1 year" 
ExpiresByType image/jpeg "access 1 year" 
ExpiresByType image/gif "access 1 year" 
ExpiresByType image/png "access 1 year" 
ExpiresByType text/css "access 1 day" 
ExpiresByType text/html "access 1 day" 
ExpiresByType application/pdf "access 1 month" 
ExpiresByType text/x-javascript "access 1 month" 
ExpiresByType application/x-shockwave-flash "access 1 month" 
ExpiresByType image/x-icon "access 1 year" 
ExpiresDefault "access 1 month" 
</IfModule> 
## EXPIRES CACHING ## 

现在这里什么情况是我在浏览器中加载的任何页面也可以离线加载,这正是我想要的,但是如果我对html进行了任何更改,那么我不确定它将如何在此处更新。

我的html文件保存为index.php,PHP,因为他们有一些PHP代码,主要包括页眉,页脚和一个小的mysql行。

现在我想要的是这个主页和其他html/php页面每天都要重新加载。

请告诉我我需要做什么.htaccess来设置它。

我已经尝试设置html/css到1天那里,但那不能正常工作,因为我的应用程序仍然加载旧的缓存。 (我的应用程序只是Windows Phone 8.1,IE11的浏览器。)

在此先感谢。

回答

0

浏览器缓存将基于资源URL。

当您要强制浏览器重新加载新资源时,只需通过添加版本字符串来更改URL。

例如,当前图像的URL:

http://static.adzerk.net/Advertisers/af217662e49a4cbda030feae88418cdd.png 

可以更改为:

http://static.adzerk.net/Advertisers/af217662e49a4cbda030feae88418cdd.png?v=1 

版本号可以在PHP代码来控制。

如果您不使用数据库,可以从文本文件读取/写入版本控制编号。

+0

我曾经看到过一个类似style.xhb32.css的“指纹”解决方案,然后在我做出更改时将其重命名为其他内容。我可以为我的css文件管理这种方法,因为我只有1个头文件,在那里生病需要做重命名然而,我有一些我不能重命名bcoz许多其他文件链接到它,这里你建议似乎解决这个问题,因为你的文件名字是相同的,但我从来没有添加类似“?v1”之类的东西,所以我不知道它是如何工作的。你能给我一个小指南吗?我有一个tutorials.php文件,其中包含基本链接,当我进行更改时,需要进行更新。 –

+0

假设您将版本号存储在某处(例如在数据库中)。在您的代码中,每次更改版本时,必须在图像之后添加字符串。

+0

嗯,我之前没有使用过数据库来存储类似的东西,但我明白了,谢谢你生病尝试类似的东西。我可能不需要它的图像我只有4-5页,我需要更新时,我做出了改变。 –