我在WebRoot下建立了一个decorators的文件夹里面建立了一个复用的jsp页面 main.jsp现在我通过在<title></title>中用
<link href="style.css" type="text/css" rel="stylesheet" />
引入css文件,在Myeclipse的main.jsp的预览中一切都显示正常
项目运行过后页面却和没有css的纯html页面一样,但是通过<decorator:body />却能正常的将页面显示出来,控制台中也没有出现任何的错误!
在WEB-INF 中的decorators.xml文件的内容如下
WEB-INF.xml的配置
请问这是怎么回事啊?
但是CSS的引用是没有问题的。
将CSS代码直接放入页面之中,通过<style></style>来直接使用CSS页面没有问题,
但是CSS里面通过:background:#1F2C08 url(img01.jpg) repeat-x left top;
引入的img01.jpg图片无法引入。
注意:在预览,jsp这些标签去掉后以html的方式直接打开都是没有任何问题的,页面和设计的一样,但是运行后却出现CSS没有使用以及图片没有使用!
<link href="style.css" type="text/css" rel="stylesheet" />
引入css文件,在Myeclipse的main.jsp的预览中一切都显示正常
项目运行过后页面却和没有css的纯html页面一样,但是通过<decorator:body />却能正常的将页面显示出来,控制台中也没有出现任何的错误!
在WEB-INF 中的decorators.xml文件的内容如下
WEB-INF.xml的配置
请问这是怎么回事啊?
但是CSS的引用是没有问题的。
将CSS代码直接放入页面之中,通过<style></style>来直接使用CSS页面没有问题,
但是CSS里面通过:background:#1F2C08 url(img01.jpg) repeat-x left top;
引入的img01.jpg图片无法引入。
注意:在预览,jsp这些标签去掉后以html的方式直接打开都是没有任何问题的,页面和设计的一样,但是运行后却出现CSS没有使用以及图片没有使用!
有两种方式处理资源文件的路径:
1.传统解决方案:利用head标签的base属性
------------------------------------
放以下代码到页面的<head></head>之间:
<%
String path = request.getContextPath();
String basePath = request.getScheme() + "://" + request.getServerName() + ":" + request.getServerPort() + path + "/";
%>
<base href="<%=basePath%>">
大致意思是本页面所有链接都以webapp根目录为起始点。此时直接写图片路径还是css路径都没有问题了。比如:<link href="css/style.css" type="text/css" rel="stylesheet" /> ,其中css目录和web-inf目录为同级目录,即都在webapp根目录下。
---------------
2.第二种方式:使用Struts2的s:url标签来搞定,推荐用这种:
-----------------------------------------------------
什么额外代码都不需要,引入资源文件时只需要这么写,如:
<link href="<s:url value="/css/manager.css"/>" rel="stylesheet" type="text/css"/>----
希望这个回帖不算太晚。我也是刚刚开始实践sitemesh。初步感觉很好很强大!