2

Tomcat 7 提供了新的别名,允许在 WAR 文件之外存储静态内容。我在http://www.developer.com/java/web/article.php/3904871/Top-7-Features-in-Tomcat-7-The-New-and-the-Improved中找到了一些说明如何做到这一点.htm第 4 部分。

但这对我不起作用。

我有两个上下文 XML 文件。一个用于我的应用程序 (admin.xml),另一个用于我的静态资源 (uploads.xml)。

我做了本教程中提到的所有事情,但 Tomcat 在 WAR 文件之外看不到任何静态资源。

我的静态资源结构:

/home/user/admin-images/-
                   -234bF5_image/image.jpg
                   -572d44_otherImage/otherImage.jpg
                   -12A4uR_otherImage/otherImage.jpg

管理员.xml:

<Context path="/admin" 
        docBase="path/to/application/target" reloadable="false">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Manager pathname="admin" />
</Context>

上传.xml:

<?xml version="1.0" encoding="UTF-8"?>
<Context path="/admin" aliases="/images=/home/user/admin-images">

</Context>

上下文部署图像后无法访问:

http://localhost:8080/admin/images/234bF5_image/image.jpg

当我尝试达到这一点时,我收到无法显示图像的错误。

4

2 回答 2

5

我没有设法让它工作。但我找到了另一种在 Web 应用程序之外提供静态图像的解决方案。

您需要在 Tomcat 配置中的 server.xml 中定义上下文:

server.xml(这必须进入“主机”标签):

...
...
<Host>
    ...
    ...
    <Context docBase="/home/user/admin-images/" path="/images" />
    ...
    ...
</Host>
...
...

这样我就可以得到这样的静态图像:[http://localhost:8080/admin/images/234bF5_image/image.jpg]

我的新问题是: 这种共享静态资源的方式安全吗?它有什么缺点吗?

于 2012-11-16T07:12:39.923 回答
1

我设法得到别名来处理这个:

<?xml version="1.0" encoding="UTF-8"?>
<Context aliases="/the_alias_path=/path/to/a/file/or/folder/on/your/disk,another_alias_path=/path/to/another/file/or/folder/on/your/disk" antiJARLocking="true" path="/your/app/context"/>
于 2013-11-28T09:32:56.853 回答