0

我有一个页面,我在本地 Tomcat 7 实例和远程 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>

默认.css

body {
  background-color: #c73b0b;
}

rest.css并且default.css不适用于Tomcat 7。我检查了FireBug,没有报告错误。我检查了两个系统上的页面源代码,完全一样。

什么可能导致这个问题?

4

2 回答 2

1

您应该始终在 webapp 中构建 URL,如下所示:

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

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

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

于 2012-08-01T18:57:23.860 回答
1

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

似乎 Tomcat 加载 CSS 文件的方式与 JBoss 不同。

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

于 2012-08-01T19:06:27.797 回答