2012-09-20 62 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