You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用JavaScript读取服务器完整路径文件?远程文件404问题求解

问题2:Tomcat路径导致的404错误解决办法

先帮你理清核心误区:Tomcat的URL访问路径和服务器本地文件系统路径完全是两码事!

你说文件实际存在于var/lib/tomcat/webapps/tpi/documents/D773.JPG,这里的webapps/tpi是Tomcat的一个Web应用根目录——也就是说,当你把tpi应用部署到Tomcat后,这个应用的根URL是http://5.135.140.184:8080/tpi/,应用内的所有资源路径都是相对于这个根来解析的。

你之前用window.open('http://5.135.140.184:8080/tpi/documents/D773.JPG', '_blank')能正常打开,是因为这个URL正好对应webapps/tpi/documents/D773.JPG的文件;而你加了/var/lib/tomcat/webapps/之后,Tomcat会把这部分当成URL路径的一部分,去默认应用(ROOT)下找var/lib/tomcat/webapps/tpi/documents/D773.JPG,显然不存在,所以返回404。

分两种场景给你解决办法:

场景1:文件就在tpi应用的documents目录下(你的当前场景)

直接用你之前能正常访问的URL就行,完全不需要加服务器本地的/var/lib/tomcat/webapps/路径:

window.open('http://5.135.140.184:8080/tpi/documents/D773.JPG', '_blank');

Tomcat会自动从tpi应用的根目录去匹配资源。

场景2:文件不在webapps目录下,需要访问服务器其他位置的文件

如果你的文件存在Tomcat的webapps之外(比如/var/data/photos/),可以通过配置Tomcat的虚拟目录来实现访问:

  1. 打开Tomcat的conf/server.xml文件,找到<Host>标签,添加一个<Context>子标签:
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
  <!-- 其他原有配置 -->
  <!-- path是URL中要使用的路径,docBase是服务器本地的文件目录 -->
  <Context path="/external-photos" docBase="/var/data/photos" reloadable="true" />
</Host>
  1. 重启Tomcat后,你就能通过http://5.135.140.184:8080/external-photos/D773.JPG访问目标文件了。

⚠️ 补充:如果不想修改全局的server.xml,可以只针对tpi应用配置——在tpi应用的META-INF目录下创建context.xml文件,添加同样的<Context>配置即可,这样只会影响tpi应用。


内容的提问来源于stack exchange,提问作者Sara Sessa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.26 10:21:47