2009-04-15 65 views
1

我有一個應用程序,爲了讓圖像加載到應用程序中,我必須使用代理。因此,圖片的url不是.jpg,它們是.php?var = value即使已經加載一次,它們的加載速度似乎也慢得多,但我並不知道它是如何工作的,但我認爲代理圖像沒有被緩存。我對麼?代理資產是否被緩存?

謝謝。

回答

2

IE(也可能是其他瀏覽器)不會緩存任何種類的URL?query = string & foo = bar if there are no caching headers in the response。您必須顯式設置緩存控制和過期標頭才能對其進行緩存。


在PHP中,設置標題的方式是這樣的:

// can be cached by browser, and also by intermediate caches (i.e. by everybody) 
header('Cache-Control: public'); 

// is fresh (doesn't have to be re-checked) until that date 
header('Expires: Fri, 17 Apr 2009 23:50:00 GMT'); 

警告:你需要的內容之前發送標題,除非你使用輸出緩衝。

0

您的PHP文件可能已經聲明瞭一個無緩存標誌或者過期時間很短。嘗試在顯示完整http標題的查看器中打開這兩個網址。

每個代理都有自己的設置,如何處理緩存和不同的文件類型。 JPG通常被看作是一個靜態文件,所以緩存它是安全的。但PHP文件被視爲動態腳本,每次產生不同的輸出。但是這完全取決於你的代理配置。

+0

那麼代理服務器接受mime-type和headers的參數,我把mime-type設置爲「image/jpeg」,但是我不知道爲這個頭文件放了什麼,所以我沒有設置它們。你知道我應該爲標題放什麼嗎?謝謝。 – 2009-04-15 18:12:47

+0

在研究腳本後沒有想到,它看起來像只是檢查參數標頭==「true」。所以我想我應該設置? – 2009-04-15 18:21:40