我有一个弹簧启动应用程序,该应用程序正常。我根据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}" />
我认为您的问题将解决