【问题标题】:image paths not right when deploying .war on Tomcat在 Tomcat 上部署 .war 时图像路径不正确
【发布时间】:2014-06-29 16:27:21
【问题描述】:

在开发了一个Java web项目后,我使用maven创建了一个war包,后来部署在Tomcat上。我的部署是通过将 war 文件上传到 tomcat 中的 webapps 文件夹来完成的。但是,当我重新启动 Tomcat 服务器时,我发现图像路径和 css/js 文件路径不正确。我是 Tomcat 的新手,我尝试阅读一些在线帮助/文档,但没有找到太多有用的答案。

我将我的 war 文件命名为 admin.war,并在 Tomcat 重新启动后创建了一个名为“admin”的新文件夹。所以我使用localhost:8080/admin访问我的网络应用程序

我使用 Ninja 框架开发我的 web 应用程序,以下是我的 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">

【问题讨论】:

    标签: java tomcat deployment war


    【解决方案1】:

    最好的方法是像这样使用 ${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

    【讨论】:

      【解决方案2】:

      如果您部署为admin.war,那么您需要将您的资产路径设置为/admin/assets/...

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-01-30
        • 2015-04-24
        • 1970-01-01
        • 2010-09-13
        • 2012-07-29
        • 2015-05-08
        • 1970-01-01
        相关资源
        最近更新 更多