在tomcat上部署spring boot war文件的问题?

时间:2017-12-25 18:23:51

标签: spring-boot tomcat8 context.xml

我有一个正常运行的Spring启动应用程序。 我按照spring guide提供的说明创建了一个war文件( MyApp.war )。

我在Ubuntu桌面上安装了Tomcat 8.5.24并且运行成功。

如果我从 / opt / tomcat / webapps / 中删除现成的ROOT应用程序,然后将 MyApp.war 复制为 / opt / tomcat / webapps / ROOT.war 然后我的spring启动应用程序正常运行,静态文件由tomcat服务器成功返回浏览器。没有问题。

我的目标是tomcat开箱即用ROOT应用程序必须继续按原样运行,静态文件以 MyApp.war 中的index.html中指定的字符串 / assets 开头strong>必须成功处理。

所以,我在我的ubuntu桌面上成功卸载并重新安装了tomcat,以验证开箱即用的tomcat的ROOT应用是否正常工作。

在阅读tomcat documentation以及与context.xml相关的堆栈溢出收藏夹Q&A's后,我尝试了以下内容:

我更改了context.xml,如下所示:

$ diff /opt/tomcat/conf/context.xml /opt/tomcat/conf/context.xmlOriginal
19c19
< <Context docBase="MyApp"   path="/assets"   reloadable="true">
---
> <Context>

context.xml中上述更改的意图,是浏览器使用URL请求静态文件时 像bootstrap那样我希望tomcat从URL new bootstrap获取文件,这是需要进行重定向的。

完成上述更改后,我重新启动了tomcat并将 MyApp.war 复制到webapps目录。当我从Chrome开发人员工具网络标签转到网址MyAppUrl时,我可以看到index.html已正确加载,如下所示:

Request URL:http://localhost:8080/MyApp/
Request Method:GET
Status Code:200
Remote Address:[::1]:8080
Referrer Policy:no-referrer-when-downgrade

在响应标签中,我看到了index.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>MyApp</title>
      <link rel="stylesheet" type="text/css" href="/assets/css/bootstrap.css">
...

但是, bootstrap.css 未正确加载。这是错误,从网络选项卡清楚地说明浏览器要求bootstrap.css并得到404响应。

Request URL:http://localhost:8080/assets/css/bootstrap.css
Request Method:GET
Status Code:404
Remote Address:[::1]:8080
Referrer Policy:no-referrer-when-downgrade

如果我转到网址success bootstrap URL,我可以验证是否可以成功检索到bootstrap.css。

我的问题是: /opt/tomcat/conf/context.xml 需要对tomcat 8进行哪些更改才能从URL {{3返回 bootstrap.css 每当浏览器要求redirectedURL的静态资源时?非常感谢,

1 个答案:

答案 0 :(得分:0)

工作代码: 使用百里香然后声明url = =

<link rel="stylesheet" type="text/css" th:href="@{/css/bootstrap.css}" />

我认为您的问题会解决