为了账号安全,请及时绑定邮箱和手机立即绑定

如何配置Tomcat从Webapps外部的外部文件夹提供图像?

如何配置Tomcat从Webapps外部的外部文件夹提供图像?

POPMUISE 2019-10-06 11:29:04
如何使用Tomcat从Web应用程序外部的公共文件夹中提供图像文件?我不想在其他端口上使用第二个Apache文件服务器,因为图像文件是同一应用程序的一部分。而且我不想在webapps中创建指向公共文件夹的符号链接,因为我的应用程序被部署为war文件。...是否有更简单的解决方案,类似于对webapps中的静态内容使用默认servlet,对于webapps之外的静态内容使用默认servlet
查看完整描述

4 回答

?
慕尼黑8549860

TA贡献1818条经验 获得超11个赞

这是我做的方式,对我来说效果很好。(在Tomcat 7.x上完成)


<context>在tomcat/conf/server.xml文件中添加一个。


Windows示例:


<Context docBase="c:\Documents and Settings\The User\images" path="/project/images" />

Linux示例:


<Context docBase="/var/project/images" path="/project/images" />

这样(在上下文中):


<Server port="8025" shutdown="SHUTDOWN">

 ...

  <Service name="Catalina">

    ...

    <Engine defaultHost="localhost" name="Catalina">

     ...

     <Host appBase="webapps"

      autoDeploy="false" name="localhost" unpackWARs="true"

      xmlNamespaceAware="false" xmlValidation="false">

      ...

      <!--MAGIC LINE GOES HERE-->

       <Context  docBase="/var/project/images" path="/project/images" />


      </Host>

    </Engine>

  </Service>

</Server>

这样,您应该可以在以下位置找到文件(例如/var/project/images/NameOfImage.jpg):


http://localhost:8080/project/images/NameOfImage.jpg 


查看完整回答
反对 回复 2019-10-06
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

在Tomcat 7中,可以使用“别名”属性。从文档:


此属性提供了一个外部位置列表,从该外部位置可以加载此上下文的资源。别名列表的格式应为“ / aliasPath1 = docBase1,/ aliasPath2 = docBase2”,其中aliasPathN必须包含前导“ /”,而docBaseN必须是.war文件或目录的绝对路径。将在第一个docBaseN中搜索资源,对于该资源,aliasPathN是该资源的引导路径段。如果没有这样的别名,则将以常规方式搜索资源。如果未部署上下文,则不会清空这些外部位置。


查看完整回答
反对 回复 2019-10-06
  • 4 回答
  • 0 关注
  • 617 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信