Html CSS在JBoss(OpenShift)上正确应用,但在Tomcat7上没有

Html CSS在JBoss(OpenShift)上正确应用,但在Tomcat7上没有,html,css,tomcat,jboss,Html,Css,Tomcat,Jboss,我在本地Tomcat7实例和远程JBoss实例(OpenShift)上都加载了一个页面。css应用于JBoss,但不应用于Tomcat 7: Html页面标题: <head> <title><decorator:title /></title> <meta http-equiv="content-type" content="text/html; charset=utf-8"/> <link rel="sh

我在本地Tomcat7实例和远程JBoss实例(OpenShift)上都加载了一个页面。css应用于JBoss,但不应用于Tomcat 7:

Html页面标题:

<head>
    <title><decorator:title /></title>
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/>
    <link rel="shortcut icon" href="/images/favicon.ico" type="image/x-icon"/>
    <link rel="stylesheet" type="text/css" href="/static/css/reset.css" media="screen" />   
    <link rel="stylesheet" type="text/css" href="/static/css/960gs-16col.css" media="screen" />
    <link rel="stylesheet" type="text/css" href="/static/css/default.css" media="screen" />
</head>
rest.css
default.css
不应用于Tomcat7。我与FireBug进行了检查,没有报告任何bug。我检查了两个系统上的页面源代码,完全相同


什么可能导致此问题?

您应该始终在Web应用程序中构建URL,如下所示:

<link rel="shortcut icon" href="<%= request.encodeURL(request.getContextPath() + "/images/favicon.ico") %>" type="image/x-icon"/>

这将使您的webapp在更改上下文路径时可以轻松地重新定位,并解决您上面提出的问题


请注意,大多数URL处理标记库(如JSTL、Struts等)都将为您执行上述工作。通常,使用其中一个脚本比在JSP代码中到处都使用丑陋的scriptlet要好。

正如我们与@JVerstry一起解决的那样:

Tomcat似乎不像JBoss那样加载CSS文件


/static/css/reset.css
是一个绝对路径。如果
reset.css
是应用程序的一部分,它应该被引用为
static/css/reset.css
(不带前导斜杠)

愚蠢的猜测,css是否加载到Tomcat 7上?我的意思是,Firebug中的
Net
选项卡中没有任何404?你是对的,所有3个css都有一个404。。。为什么?嗯,它直接进入并错过了应用程序路径…
/static/css/reset。css
是一个绝对路径。如果
reset.css
是应用程序的一部分,则不应被引用为
static/css/reset.css
?(不带斜杠)谢谢,创建一个解决方案,我会批准它!!!你对奥利克关于删除前导的评论有何看法。够了吗?我想它会回来咬你的。在我看来,您应该始终使用以上下文路径为根的绝对路径:这样,无论文件在webapp中的什么位置,也不管客户端使用的是什么基本URL,链接都始终有效。
<link rel="shortcut icon" href="<%= request.encodeURL(request.getContextPath() + "/images/favicon.ico") %>" type="image/x-icon"/>