在Tomcat上部署.war时,图像路径不正确

时间:2014-06-29 16:27:21

标签: java tomcat deployment war

在开发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">

2 个答案:

答案 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/...