Tomcat在Spring Boot WAR部署后提供了错误的index.html?

时间:2019-07-12 14:10:58

标签: html angular spring-boot tomcat

我正在尝试将Spring-Boot / Angular7 WebApplication部署到Tomcat 9.0.21服务器。对于构建,我使用maven,它将应用程序打包到MyApp.WAR文件中。服务器在我本地网络中的Ubuntu计算机上运行,​​我通过manager / html界面部署应用程序。该应用程序启动正常,但是当我打开部署它的上下文路径时,出现了一些奇怪的错误。对index.html进行了GET请求,这恰好应该发生,但是响应是错误的。 特别是

<base href="/">

应为

<base href="/MyApp/">

,因此指向我的角度js文件的链接错误并抛出404。

Tomcat在部署时会爆炸WAR文件,因此我查看了/ tomcat / webapps / MyApp /中的文件,index.html显然具有正确的链接和base-href。

我首先认为这是一个缓存问题,所以我尝试删除浏览器缓存,尝试使用其他浏览器/邮递员并从其他计算机访问,但是错误仍然存​​在。我还从可以找到的tomcat清除了所有缓存的文件。具体地说,工作目录和tmp目录仍然没有用。我还更改了index.html中的标题以进行调试。奇怪的是,当我请求/ MyApp /时,也没有显示此更改。取消部署和重新部署应用程序,重新启动tomcat或整个服务器也没有什么区别。日志也不是真正有用的。 Spring只会为/index.html请求返回200 OK。

然后我尝试在本地计算机上复制该问题,因此我在Windows计算机上安装了tomcat,并部署了该应用程序。令我惊讶的是,我在当地的雄猫上也得到了同样的错误回应。即使是旧标题。同样,tomcat / webapps / MyApp目录中的文件是正确的,所以现在我很困惑。我经历了数小时的故障排除以及关于stackoverflow的所有相关文章,但这对我来说仍然没有意义。我的本地tomcat怎么会得到错误的index.html?

我得到的答复:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>AngularWeb</title>
  <base href="/">
  <link rel="stylesheet" href="styles.88280e7988cdba7a08b5.css">
</head>
<body>
  <app-root></app-root>
    <script type="text/javascript" src="runtime.b57bf819d5bdce77f1c7.js"></script>
    <script type="text/javascript" src="polyfills.1e43b31871c559c486ee.js"></script>
    <script type="text/javascript" src="main.51c8323ac6b71aacefff.js"></script>
</body>
</html>

我所期望的/文件实际上是这样的:

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>New Title</title>
  <base href="/MyApp/">
  <link rel="stylesheet" href="/MyApp/styles.88280e7988cdba7a08b5.css">
</head>
<body>
  <app-root></app-root>
    <script type="text/javascript" src="/MyApp/runtime.b57bf819d5bdce77f1c7.js"></script>
    <script type="text/javascript" src="/MyApp/polyfills.1e43b31871c559c486ee.js"></script>
    <script type="text/javascript" src="/MyApp/main.51c8323ac6b71aacefff.js"></script>
</body>
</html>

我很乐意发布更多代码,但现在我什至不知道问题可能出在哪里。当我在嵌入式Spring Tomcat上本地启动该项目时,该项目正常运行,并且之前我对不同的项目使用了相同类型的配置,没有任何问题。有人有什么主意吗?

0 个答案:

没有答案