5

如果这是一个糟糕的问题,我深表歉意,但我正在使用 Windows 并查看是否有办法通过 Tomcat 运行 web 应用程序,其中docBase存在多个文件夹。

更多背景知识是,我们的 Eclipse 项目设置为将 Web 内容分成单独的文件夹。一个文件夹代表我们的 SDK 提供的内容,一个是包含 SDK 补丁的文件夹,第三个是项目特定的组件——最后两个文件夹中的任何一个都可能包含从前两个文件夹中“删除”项目的子文件夹/文件。

我想尝试让我的上下文文件指向我的开发环境,这样我就不需要构建/部署来查看我所做的更改。这可能吗?

其他几点注意事项:

  • 我们曾考虑通过 使用符号链接mklink,但如果存在简单性,我们不想造成复杂性。
  • 这只是为了在本地运行,所以允许简单的黑客攻击。当我们创建部署到真实环境的 WAR 时,ANT 脚本会创建一个 Web 根目录。
4

2 回答 2

3

我这样使用它:

    <Context docBase="jquery"                path="/js/jquery" />
    <Context docBase="foobar/www/javascript" path="/js" />
    <Context docBase="foobar/www/css"        path="/css" />
    <Context docBase="foobar"                path="/" />

对于具体上下文来说重要的是路径属性。从上到下处理请求。

/css/default.css因此,仅从第三个上下文处理请求。

不同的顺序可能会捕获不同的上下文。

这是错误的:

    <Context docBase="foobar"                path="/" />
    <Context docBase="jquery"                path="/js/jquery" />
    <Context docBase="foobar/www/javascript" path="/js" />
    <Context docBase="foobar/www/css"        path="/css" />

因为/css/default.css将被第一个上下文捕获,而不是第四个。

编辑 2013-08-10:(不是答案作者)重要的是要注意,虽然上述技术可行,但其中大部分实际上是不正确的。详情请看评论。

于 2013-07-22T13:42:47.417 回答
3

Tomcat 可以为您做到这一点,您只需要一些额外的配置。

您正在寻找VirtualDirContext,它允许您指定extraResourcePaths将搜索(按顺序)附加文件的列表。您可以使用它来合并静态资源、JSP、JAR 文件目录等。

请记住,您添加的每个路径都会使每个文件查找可能需要更长的时间——尤其是在根本找不到文件的情况下。

于 2013-07-25T14:41:37.523 回答