2012-09-20 109 views
1

我有一組靜態文件(主要是靜態文件,包括css和圖像,構成了ExtJS JavaScript框架)。這組靜態文件很少發生變化,因此我決定而不是將它們包含在Web應用程序的war文件中的項中。 (即我沒有遵守this answer推薦的方式。)Tomcat7如何使用Expires HTTP標頭提供靜態文件

現在我擔任/extjs下的所有這些靜態文件通過在server.xml定義如下Context container

<Context docBase="/path/to/extjs-4.1.1" path="/extjs" /> 

這「工程」至今;如果有人能夠提出更好的方法,請做。

但是我找不到一種方法將expires HTTP頭添加到由此上下文服務的文件中。

任何想法如何在這方面配置Tomcat7?

回答

0

似乎沒有Tomcat的默認servlet(org.apache.catalina.servlets.DefaultServlet)有辦法做到這一點。

要做的最簡單的事情就是創建一個servlet過濾器,它只需將HTTP頭添加到每個請求中。由於<context>定義了一個web應用程序,因此您可以將WEB-INF/web.xml文件添加到/extjs並在其中加載過濾器。由於/ extjs是一個單獨的上下文,因此您的「真實」應用程序不會受到影響。

+0

所以你推薦的是我把'WEB-INF/web.xml'放在靜態文件的根目錄下?現在,靜態文件對任何服務器端的東西都是「無知的」,我想保留它們。 –

+0

是的,這是我能想到的唯一解決方案。 – AngerClown