我使用tomcat 7.0和eclispe WTP插件。我无法在本地磁盘上引用文件。
<h:graphicImage value="C:/tmp/someFile.png"/>
我尝试通过添加位置C来解决它:\ Program Files(x86)\ apache-tomcat-7.0.32 \ webapps
目录tmp /并使用<h:graphicImage value="/tmp/someFile.png"/>
我也试过从eclipse添加到tomcat文件:server.xml <Context docBase="C:/tmp" path="/tmp" />
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" pattern="%h %l %u %t "%r" %s %b" prefix="localhost_access_log." suffix=".txt"/>
<Context docBase="myProjectName" path="/myProjectName" reloadable="true" source="org.eclipse.jst.jee.server:myProjectName"/>
<Context docBase="C:/tmp" path="/tmp" /></Host>
以相同的方式引用文件<h:graphicImage value="/tmp/someFile.png"/>
结果我有HTTP状态404.说明请求的资源不可用。
我该如何解决? 谢谢
答案 0 :(得分:1)
<h:graphicImage>
会自动在URL中添加当前webapp的上下文路径。如果您已经在webbrowser的内置webdeveloper工具集中查看了生成的HTML输出和/或HTTP流量监视器,那么您已经注意到了它。
只需使用纯HTML <img>
元素。
<img src="/tmp/someFile.png" />
答案 1 :(得分:0)
“webapp”目录在部署时充当应用程序的根目录(理想做法)。因此,如果您使用path(url)"/tmp/someFile.png"
来访问文件someFile.png,那么您必须将文件放在 "/src/main/webapp/tmp/someFile.png"
中,并在部署之后将“webapp”的内容放入应用程序的根目录中。 / p>
所以基本上只需确保“tmp”在你的应用程序根目录中。
如果要使用文件系统。您可以看到此答案here。