如何正确使用Tomcat 7新别名?

med*_*iai 2 ubuntu resources static aliases tomcat7

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
Run Code Online (Sandbox Code Playgroud)

admin.xml的:

<Context path="/admin" 
        docBase="path/to/application/target" reloadable="false">
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <Manager pathname="admin" />
</Context>
Run Code Online (Sandbox Code Playgroud)

uploads.xml:

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

</Context>
Run Code Online (Sandbox Code Playgroud)

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

http://localhost:8080/admin/images/234bF5_image/image.jpg
Run Code Online (Sandbox Code Playgroud)

当我试图达到这个时,我得到错误,无法显示图像.

med*_*iai 5

我无法让它运作起来.但是我找到了另一种在Web应用程序之外提供静态图像的解

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

server.xml(这必须进入'Host'标签):

...
...
<Host>
    ...
    ...
    <Context docBase="/home/user/admin-images/" path="/images" />
    ...
    ...
</Host>
...
...
Run Code Online (Sandbox Code Playgroud)

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

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