我在web.xml中定义了一个欢迎页面,我正在WebSphere上部署。
<welcome-file-list>
<welcome-file>main.jsp</welcome-file>
</welcome-file-list>
我的js文件位于下面
WebContent > static > js > myJsFile.js
我的JSP直接位于WebContent下。在我的JSP中,我正在尝试加载JS文件
<head>
<script id="loader" type="text/javascript" src="static/js/myJsFile.js"></script>
</head>
问题是无法加载文件。我得到404.当我检查Chrome DevTools时,我可以看到获取文件的URL无法考虑应用程序上下文。它尝试使用的网址如下,缺少应用内容。
http://localhost:9080/static/js/myJsFile.js
我知道我可以使用&lt;%= request.getContextPath();%&gt;来获取上下文。但是根据 servlet规范,容器应该从/ myapp重定向到带有斜杠/ myapp /的URI。
在我的JavaScript文件中,我正在加载许多其他JS文件,在这种情况下也会失败。
有人可以解释原因吗?
更新我在一个单独的应用程序上进行了一些调查,该应用程序工作正常并设法在浏览器点击http://localhost:9080/myapp后立即找到302重定向到{{3} } (注意尾随斜杠)。 在我的应用程序中,容器从不重定向。如果有重定向,那么一切正常。
更新 我在WAS 8.5(http://localhost:9080/myapp/)上找到了一个关于已知错误的链接。根据他们我有修复包,但我的问题仍未解决。
另一件事是在我的pom.xml中我改变了我的应用程序的 contextRoot (/ myapp)。