重定向到带斜杠的URL失败 - 忽略应用程序上下文

时间:2016-08-05 18:31:11

标签: java url websphere relative-path contextpath

我在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)。

0 个答案:

没有答案