作者godgiraffe (小鹿)
看板Ajax
标题[问题]关於快取:档案路径"相同" 档案内容"不同"
时间Wed Mar 27 17:30:20 2013
[已解决] 解决方法在最下方。
各位大大好
呃… 这标题不知道怎麽下,所以只好下了个烂标题 = =
目前,我有个 html 里头有个 div,在每次上传图片时
都会用 ajax reload,并显示图片
但显示的图片,却会有错误,原因似乎是快取的关系??
先说一下我的程式流程:
1、选择档案(可多选)
假设选了A、B、C ,三个图档
2、选完後,会自动上传至 server,并重新命名为1、2、3
这三个档的路径分别为: img/1.jpg
img/2.jpg
img/3.jpg
3、如果这时候,我将 3 砍掉(有实际将 3.jpg 删除),并且重新上传一个 D 图档
此时,D 图档上传後,路径一样是: img/3.jpg
这时候问题就会出现了(就是相同路径 but档案内容不同),
网页上还是显示 C 图档
除非我 F5 重新整理网页,才会显示 D 图档
我有在 <head> 里面 的 <meta> 加入了:
<meta http-equiv="expires" content="0">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
一样没有效果 Q_Q
不知道各位大大有没有遇过这样子的问题呢?
解决方法:
在输出 img 的时候,这样子写
<img src="1.jpg?随机数字">
这个随机数字,看要怎麽产生都可以,我是使用 php
所以我写成:
$timestamp = time();
"<img src='" . $file_path . $img . "?$timestamp" . "'/>"
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 60.250.50.43
※ 编辑: godgiraffe 来自: 60.250.50.43 (03/27 17:32)
1F:→ terrybob:在传出路径,加一个随机数字 03/27 17:37
谢谢大大!刚刚也正好找到解答!!
烦恼了一整个下午= =
※ 编辑: godgiraffe 来自: 60.250.50.43 (03/27 17:43)
※ 编辑: godgiraffe 来自: 60.250.50.43 (03/27 17:45)
※ 编辑: godgiraffe 来自: 60.250.50.43 (03/27 17:49)
2F:推 LPH66:顺带解释一下你的<meta>无用的原因: <meta> 是写在 HTML 里 03/28 16:12
3F:→ LPH66:所以只对 HTML 有用, 不过图片不能像这样写 meta 03/28 16:13
4F:→ LPH66:而得要由伺服器方设定才行; 因此加乱数其实就是骗伺服器说 03/28 16:13
5F:→ LPH66:「这是不一样的档案哟」才能不让伺服器去做快取相关的动作 03/28 16:14