我在Ubuntu 9.04的Tomcat 6上部署了一个Java Web应用程序。 对于某些图像,我想创build一个符号链接到另一个图像目录。 这将允许我引用保留在服务器上的映像,即使应用程序已被删除和重新部署。
该应用程序部署在/var/lib/tomcat6/webapps/ROOT/目录中, images目录存在于war中。 当我部署应用程序时,我创build了一个到saved_images目录的符号链接,所以有一个像/var/lib/tomcat6/webapps/ROOT/images/saved_images/ 。
在应用程序中,我有以下代码:
File file = new File("/var/lib/tomcat6/webapps/ROOT/images/saved_images/abc.jpg"); boolean fileExists = file.exists();
代码运行时, fileExists值为true,但当引用像images/saved_images/abc.jpg时,图像不会显示在页面上。
/var/lib/tomcat6/webapps/ROOT/images和/var/lib/tomcat6/webapps/ROOT/images/saved_images中的/var/lib/tomcat6/webapps/ROOT/images/saved_images相同(所有者和组为tomcat6,与在战争中部署的其他文件)。 如果我删除了sym链接并将saved_images文件放在一个同名的目录中,则会显示这些图像。 当目录是一个sym链接时,如何让页面显示这些图像,而不必将这些文件复制到一个真实的目录中?
你有没有尝试将以下内容添加到你的context.xml文件?
<Context path="/foobar" allowLinking="true">