在Tomcat上部署Spring Boot War文件的问题



我有一个弹簧启动应用程序,该应用程序正常。我根据Spring Guide可用的说明创建了一个战争文件( myApp.war )。

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

如果从/opt/opt/tomcat/webapps/中删除盒子根应用程序,然后复制 myApp.war.war as /opt/opt/tomcat/WebApps/root.war 然后,我的Spring Boot应用程序正常工作,静态文件将通过Tomcat Server成功返回浏览器。没有问题。

我的目标是tomcat的"盒子根"应用程序必须继续按原样运行,静态文件以字符串/Assets myApp.war 必须成功处理。

所以,我成功地在Ubuntu桌面上卸载并重新安装了Tomcat,以验证Tomcat的根源应用程序的功能正常。

阅读了tomcat文档以及与context.xml相关的堆栈溢出的质量溢出Q& a,我尝试了以下内容:

我更改了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目录。当我进入url myappurl时,从chrome开发人员工具网络选项卡中,我可以看到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

我可以验证bootstrap.css,如果我转到URL成功bootstrap url。

我的问题是:/opt/tomcat/conf/context.xml 在tomcat 8中需要进行什么更改,以便从url rediredectedurl返回 bootstrap.css 浏览器要求使用请求URL提供静态资源?非常感谢,

工作代码:使用百叶窗,然后声明URL喜欢=

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

我认为您的问题将解决

最新更新