[問題]關於快取:檔案路徑"相同" 檔案內容"不同"

看板Ajax作者 (小鹿)時間12年前 (2013/03/27 17:30), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/1
[已解決] 解決方法在最下方。 各位大大好 呃… 這標題不知道怎麼下,所以只好下了個爛標題 = = 目前,我有個 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)

03/27 17:37, , 1F
在傳出路徑,加一個隨機數字
03/27 17:37, 1F
謝謝大大!剛剛也正好找到解答!! 煩惱了一整個下午= = ※ 編輯: 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)

03/28 16:12, , 2F
順帶解釋一下你的<meta>無用的原因: <meta> 是寫在 HTML 裡
03/28 16:12, 2F

03/28 16:13, , 3F
所以只對 HTML 有用, 不過圖片不能像這樣寫 meta
03/28 16:13, 3F

03/28 16:13, , 4F
而得要由伺服器方設定才行; 因此加亂數其實就是騙伺服器說
03/28 16:13, 4F

03/28 16:14, , 5F
「這是不一樣的檔案喲」才能不讓伺服器去做快取相關的動作
03/28 16:14, 5F
文章代碼(AID): #1HKhmkvN (Ajax)
文章代碼(AID): #1HKhmkvN (Ajax)