我在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没有使用以及图片没有使用!

解决方案 »

  1.   

    最近恰好在联系用Struts2+SiteMesh重构项目,一点儿经验分享给你,请指正:
    有两种方式处理资源文件的路径:
    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。初步感觉很好很强大!