如何缓存图像一年,但html / php只有24小时

I'm new here so sorry if this is in the wrong category or something like that. Now getting to my problem. I have a website: www.windowstaan.pe.hu which also opens on a mobile app so in order to make it load fast I have enabled caching in .htaccess and here's its code:

## 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 ##

Now what happens here is that any page I load in the browser can also be loaded offline which is what I wanted, but if I make any changes to the html then I'm not sure how its going to update here.

My html files are saved as index.php, PHP because they have some PHP code in them mainly include header, footer and a small mysql line.

Now what I want is for this homepage and every other html/php page to reload every day.

Please tell me what I need to do in .htaccess to set it like that.

I have tried setting html / css to 1 day there but that is not working perfectly as my app still loads the old cache. (My app is just a browser of windowsphone 8.1, IE11 probably.)

Thanks in advance.

1个回答



浏览器缓存将基于资源URL。 </ p>

如果要强制浏览器重新加载新资源,只需添加版本字符串即可更改URL。 </ p>

例如,当前图片网址:</ p>

  http://static.adzerk.net/Advertisers/af217662e49a4cbda030feae88418cdd.png
< / code> </ pre>

您可以更改为:</ p>

  http://static.adzerk.net/Advertisers/af217662e49a4cbda030feae88418cdd.png?v  = 1 
</ code> </ pre>

可以在PHP代码中控制版本号。</ p>

版本控制号可以从以下位置读取/写入 如果您不使用DB,则为文本文件。 </ p>
</ div>

展开原文

原文

The browser caching will base on the resource URL.

When you want to force browser to reload the new resource, you just change the URL by adding a version string.

For example, current image URL:

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

You can change to:

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

The version number can be controlled in your PHP code.

Version control number can be read/write from a text file in case you do not use DB.

dongpang2483
dongpang2483 很抱歉再次打扰你,但我有另一个问题,我已经将text / html的缓存过期时间设置为60秒,但事情是如果我在浏览器中打开网站它加载旧缓存,即使它已经过了60秒,只重新加载它 解决问题,但这不是我的解决方案,所以我完全删除了html和css线(只有图像缓存然后)所以我清除了我的浏览器缓存然后打开页面并让我的设备离线然后我重新启动浏览器并尝试加载 页面,它甚至没有.htaccess中的text / html加载
接近 5 年之前 回复
douqi3064
douqi3064 您可以将版本号写入文本文件。 下次你刚读完它。
接近 5 年之前 回复
dptsivmg82908
dptsivmg82908 好吧,我之前没有使用过数据库存储类似的东西,但我明白了,谢谢你生病了。 我可能不会需要它的图像我只有4-5页我需要更新当我做出更改。
接近 5 年之前 回复
duanbarong4617
duanbarong4617 假设您将版本号存储在某个位置(例如在DB中)。 在您的代码中,每次更改版本时,您都必须在图像后添加字符串。 <img src =“<?php echo $ image_url。”?v =“。$ version;?>。希望这会有所帮助
接近 5 年之前 回复
duai3681
duai3681 我曾经看到过类似style.xhb32.css的“指纹”解决方案,然后在我做出更改时将其重命名为其他内容。 我可以为我的css文件管理这个方法,因为我只有1个头文件,其中需要重命名,但有些我不能重命名bcoz许多其他文件链接到它,这里你建议似乎解决了这个问题,因为你的文件 名字是相同的,但我从来没有添加像“?v1”之类的东西,所以我不知道它是如何工作的。 你能给我一个小指南吗? 我有一个tutorials.php文件,其中包含我需要在进行更改时需要更新的基本链接。
接近 5 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐