Html CSS在JBoss(OpenShift)上正确应用,但在Tomcat7上没有
我在本地Tomcat7实例和远程JBoss实例(OpenShift)上都加载了一个页面。css应用于JBoss,但不应用于Tomcat 7: Html页面标题: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
<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"/>