将Web应用程序外部的目录映射到TOMCAT中的URL

22 image java-ee

我需要映射包含位于tomcat webapps文件夹之外的图像的目录,以便应用程序可以为这些图像提供服务.

我正在使用tomcat 6运行J2EE Web应用程序.用户可以在应用程序中上传/删除图像.Currenly我将这些图像存储在应用程序的WebContent文件夹下的目录中,但是我想把它放在tomcat之外(例如C:/ test/images).

我需要知道如何配置tomcat,这样如果我访问URL http://.com/images/abc.jpg,它将提供目录C:/ test/images中的图像

谢谢,

Mau*_*rry 34

在server.xml中的<Host>标记内添加<Context>标记:

<Context path="/images" docBase="C:/test/images/" />
Run Code Online (Sandbox Code Playgroud)

可以访问文档 http://localhost:8080/images

  • 我遵循同样的道理.但是在调用时,如http:// localhost:8080/images ............它将给出错误404所请求的资源(/ images /)不可用.是liferay发布??? (2认同)

小智 5

我有同样的问题,但找到了解决方案.

如果您正在使用Eclipse和Tomcat插件,请注意Eclipse Tomcat插件CATALINA_BASE在Eclipse workspace目录下创建一个单独的插件.

你可以去这个地方,你会发现server.xml.使用 server.xml,它会工作.

我的实际tomcat目录是:

C:\apache-tomcat-7.0.62x64\apache-tomcat-7.0.62\conf
Run Code Online (Sandbox Code Playgroud)

我的Eclipse Tomcat服务器使用:

C:\workspace\JSF\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\conf 
Run Code Online (Sandbox Code Playgroud)

使用工作空间路径并server.xml从此位置.

将其添加server.xml到主机标记内:

< Context docBase="D:/personal"  path="/images" />
Run Code Online (Sandbox Code Playgroud)

并且如果D:/personal1.png,它将工作,然后url http://localhost:8080/images/1.png将加载图像.


小智 5

在 Tomcat8 中,您还可以将 PotsResources 添加到 META-INF/context.xml 中,如下所示:

<Context>
    <Resources allowLinking="false">
        <PostResources readOnly="false"
                       className="org.apache.catalina.webresources.DirResourceSet"
                       base="path-to-your-local-folder"
                       webAppMount="/images"/>
    </Resources>

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