2016-12-20 35 views
0

當資源響應包含HTTP標頭Content-Disposition:inline時,似乎不應用高速緩存指令。當我們使用OmniFaces CacheControlFilter時,響應不包含Cache-ControlExpires指令。這是正常的嗎?當響應包含Content-Disposition標頭時,OmniFaces CacheControlFilter不起作用

+0

通常,響應標題會通過代碼以流式傳輸文件下載來重置。你確定這不是這種情況嗎? – BalusC

+0

正確。有一個response.reset();在代碼 – jpl

回答

2

不,這不是默認行爲。

此行爲表明負責流式傳輸文件的代碼執行了response.reset()以確保響應清晰乾淨。您通常會在複製代碼片段中看到這種情況,因爲初學者會抱怨下載不起作用。例如這裏:How to provide a file download from a JSF backing bean?

假設你使用OmniFaces,你可能會可能發現Faces#sendFile()FileServlet的文件流媒體到響應的任務更加有用。 Faces#sendFile()does not執行response.reset(),並且FileServlet默認爲30 days,其可通過重寫getExpireTime()方法來控制。

+0

謝謝,這將是非常有用的 – jpl

相關問題