java Tomcat自定义上下文。xml文件从未被考虑在内
我目前对web应用程序的Tomcat配置有问题(我使用Tomcat 8.5.57)
这个web应用程序打包在一个war文件中,其中包括html文件和css文件
这个应用程序运行良好
现在,我收到一位客户的请求,要求能够通过客户管理的定制css文件(用于设置客户的徽标或类似的东西),从战争之外修改应用程序的外观和感觉
因此,我尝试创建一个名为custom.xml
的自定义上下文文件,并将其放置在tomcat\conf\Catalina\localhost
目录中
此文件看起来像:
<Context docBase="E:/somedirectory/support"
path="/app/css"
reloadable = "false"
unpackWAR = "false"
swallowOutput = "true" >
<WatchedResource>custom.css</WatchedResource>
</Context>
我将包含一些css指令的custom.css
文件作为测试放在E:/somedirectory/support
目录中
在我的web应用程序的html文件中,标题部分有以下行:
<link rel="stylesheet" href="css/custom.css" media="screen" type="text/css"/>
问题是我的custom.css
文件从未被考虑在内
当我打开Chrome开发者工具的Sources选项卡时,我看到了custom.css
层次结构中的一个app/css
文件,正如预期的那样(可能是由于html文件中的行),但它是空的,令人绝望
我尝试了很多在网络和stackoverflow上找到的东西,但都不管用
有人能帮我吗
谢谢!
# 1 楼答案
<Context>
元素的path
属性在server.xml
之外被忽略:因此,你有两个选择:
conf\Catalina\localhost\app#css.xml
的文件和内容,可以使用上下文路径/app/css
定义新的上下文(新的web应用程序):这样,在
/app/css
子树下的所有内容都将只从E:\somedirectory\support
目录提供服务conf\Catalina\localhost\app.xml
的文件,可以重新定义应用程序上下文,以包含一个附加的虚拟目录(WAR文件的内容旁边):这样,在处理
/app/css/foo/bar
请求时,Tomcat将首先在E:\somedirectory\support
中查找foo/bar
,然后在WAR文件中查找