当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《如何配置Tomcat从webapps外部的外部文件夹提供图像?》经验,为你挑选了4个好方法。

如何使用Tomcat从webapps外部的公用文件夹提供图像文件?我不想在不同的端口上使用第二个Apache文件服务器,因为图像文件是同一个应用程序的一部分.我不想在webapps中为公共文件夹创建一个符号链接,因为我的应用程序被部署为war文件....是否有一个更简单的解决方案,类似于在webapps中使用静态内容的默认servlet,用于外部webapps之外的静态内容



1> delkant..:

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

添加tomcat/conf/server.xml文件.

Windows示例:


Linux示例:


像这样(在上下文中):


 ...
  
    ...
    
     ...
     
      ...
      
       

      
    
  

通过这种方式,您应该能够在以下位置找到文件(例如/var/project/images/NameOfImage.jpg):

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


*此*应标记为答案恕我直言

2> sblundy..:

你可以有一个重定向servlet.在你的web.xml中你有:


    images
    com.example.images.ImageServlet


    images
    /images/*

您的所有图像都将位于"/ images"中,这些图像将被servlet拦截.然后它将在相关文件中读取任何文件夹并立即将其提供给它.例如,假设您的images文件夹中有一个gif,c:\ Server_Images\smilie.gif.在网页上会是.在servlet中, HttpServletRequest.getPathInfo()会产生"/smilie.gif".servlet会在文件夹中找到哪个.


我不认为你的答案已经清楚地表明`com.example.images.ImageServlet`是你自己写的东西.
答案很像FileServlet - http://balusc.blogspot.com/2007/07/fileservlet.html.彻底的解决方案和信息丰富的页面,这就是我的用途.

3> gamliela..:

在Tomcat 7中,您可以使用"别名"属性.来自文档:

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


请注意,这不再适用于Tomcat 8

4> Justin Emery..:

您可以将图像文件夹部署为单独的Web应用程序,并将该文件夹的位置定义为文件系统中的任何位置.

在enginename可能为"Catalina"且hostname可能为"localhost" 的目录中的XML文件中创建Context元素$CATALINA_HOME/conf/[enginename]/[hostname]/.

根据您希望从中查看图像的路径URL命名文件,因此,如果您的webapp具有路径"blog",则可以命名XML文件blog#images.xml,以便在以下位置显示您的图像example.com/blog/images/

XML文件的内容应该是

小心不要取消部署此webapp,因为这可能会删除所有图像!

推荐阅读
贾志军
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有