日期:2014-05-17  浏览次数:20833 次

freemarker引用外部CSS、JS、图片文件的路径问题
1.开发环境:spring2.5+struts2.0.11.1+freemarker2.3.8
  采用freemarker顶替JSP作为view

2.web目录结构:
  web
  index.html
  ......
  WEB-INF
  inc
  css
  login.css
  images
  hans_head_pieces.gif
  hans_banner.gif
  js
  public.js
  prototype.js 
  ......
  macros(freemarker的macro)
  common.ftl
  pages(以ftl格式编写的html文件,其实就是ftl文件)
  login.html
   
3.引用外部文件说明
  我的login.html有关引用外部文件的语句如下:
<!--引用macro-->
<#import "/WEB-INF/macros/common.ftl" as com>
<!--引用外部CSS及JS-->
<link href="/WEB-INF/inc/css/login.css" rel="stylesheet"/>
<script src="/WEB-INF/inc/js/public.js" type="text/javascript"></script>
......
<!--页面的head-->
<table cellSpacing=0 cellPadding=0 width=780 align=center border=0>
  <tr>
  <td><img src="/WEB-INF/inc/images/hans_head_pieces.gif"></td>
  </tr>
</table>

4.问题描述:
  (1)引用macro一切正常。
  (2)引用外部CSS及JS、gif等图片文件均失效。当然也没有出现任何错误提示,也就是说没有引用到
  (3)奇怪的是,同样的引用路径写法,引用macro却一切正常。

该问题已经郁闷我很久了,敬请各位大侠不吝指教,不胜感激!


------解决方案--------------------
<#assign path="${request.getContextPath()}">
..............
<link rel="stylesheet" href="${path}/inc/css/login.css" type="text/css"/>
<script src="${path}/inc/js/prototype.js"></script>