在开发Java Web项目之后,我使用maven创建了一个war包,后来我在Tomcat上部署了它。我的部署是通过将war文件上传到tomcat中的webapps文件夹来完成的。但是,当我重新启动Tomcat服务器时,我发现图像路径和css / js文件路径不正确。我是Tomcat的新手,我试图阅读一些在线帮助/文档,但发现没有太多有用的答案。
我将我的war文件命名为admin.war,以及一个名为' admin'的新文件夹。是在Tomcat重新启动后创建的。所以我使用localhost:8080/admin
我使用Ninja框架开发我的网络应用程序,以下是我的web.xml文件的内容:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0"
metadata-complete="true">
<display-name>ninja</display-name>
<listener>
<listener-class>ninja.servlet.NinjaServletListener</listener-class>
</listener>
<filter>
<filter-name>guiceFilter</filter-name>
<filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>guiceFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
在我的模板(Freemarker)中,我有以下用于提供静态文件的URL,据我所知,它是绝对路径,这可能是我遇到Tomcat问题的原因(?)
<link href="/assets/admin/font-awesome/css/font-awesome.css" rel="stylesheet">
答案 0 :(得分:2)
最好的方法是使用$ {contextPath},如下所示:
<link href="${contextPath}/assets/admin/font-awesome/css/font-awesome.css" rel="stylesheet">
这将自动为您的路径添加“admin”。
更多信息: http://www.ninjaframework.org/documentation/html_templating/advanced_topics.html
答案 1 :(得分:1)
如果您要部署为admin.war
,那么您需要将资源路径设为/admin/assets/...
。