2014-09-05 253 views
0

如何禁用Tomcat的緩存爲特定的靜態文件的位置禁用Tomcat的緩存靜態文件

[Tomcat Path]/webapps/myapp/foo.html 

謝謝

+0

這樣的回答: http://stackoverflow.com/questions/3743136/how-to-disable-tomcat-caching 出現解決您的問題 – 2014-09-09 22:02:40

+0

不是真的,我想禁用一個文件 – gumenimeda 2014-09-10 01:47:47

+0

如果你正在談論服務器端緩存,你有一個Apache的mod_cache或類似的魷魚緩存解決方案?我不認爲Tomcat有OOTB緩存。請澄清。 – vreddy 2014-09-16 17:42:59

回答

1

你不能在一個單一的文件級別配置。 Tomcat的配置粒度不允許這個恕我直言。 (從你對丹尼斯科特的評論中回覆你正在瞄準一個文件)

你的問題意味着你不是最好的實踐:看起來,這個靜態文件任意(例如通過上傳等)改變和你需要再次下載它。這意味着您正在更改已部署的Web應用程序中的文件 - 這絕對違背了最佳實踐。

您應該將文件上傳到其他位置,並提供您自己的下載servlet來爲這些外部資源提供服務。在這個servlet中,你可以自己實現緩存標題,並基本滿足你的所有需求。請記住,還可以從完整壓縮的WAR文件提供Web應用程序 - 並且無法通過更改任意文件來更新該WAR文件。最後,從安全角度來看,我認爲將webapps目錄始終寫入也是不好的做法。

因此:停止尋找tomcat配置,而是實現您自己的自定義下載和緩存標頭。更改您的URL以引用您的下載servlet位置。這會導致應用程序的期望行爲,儘管它在技術上不能以您希望得到回答的方式回答您的問題。