2013-03-02 38 views
0

我正在使用下面的代码将css文件动态添加到我的Web项目中。但是,当我写出css文件的绝对路径时,它会在我的web项目外返回一些内容。例如,为了测试,我已将css/style.css添加到cssAssets ArrayList。当我检查f.isFile()的条件时,它会写出home/*username*/css/styles.css而不是从index.jsp文件到css目录的相对路径。它应该去workspace/projectName/WebContent/css/styles.css。任何帮助表示赞赏。在Java Web项目中构建文件路径

public String buildHead() 
{ 
    htmlHead = new StringBuilder(); 
    htmlHead.append("<!DOCTYPE html PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">"); 
    htmlHead.append("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=UTF-8\">"); 
    htmlHead.append("<meta http-equiv=\"cache-control\" content=\"max-age=0\" />"); 
    htmlHead.append("<meta http-equiv=\"cache-control\" content=\"no-cache\" />"); 
    htmlHead.append("<meta http-equiv=\"expires\" content=\"Tue, 01 Jan 1980 1:00:00 GMT\" />"); 
    htmlHead.append("<meta http-equiv=\"pragma\" content=\"no-cache\" />"); 
    if (this.title.length() > 0) 
     htmlHead.append("<title>" + this.title + "</title>"); 
    else 
     htmlHead.append("<title>MMJ Ceo </title>"); 

    for (String css : this.cssAssets) 
    { 
     File f = new File(css); 

     if (f.isFile()) 
     { 
      htmlHead.append("<link rel='stylesheet' href=\"" + css + "\"/>"); 
     } 
     else 
      return f.getAbsolutePath(); 
    } 
    for(String js : this.jsAssets) 
    { 
     File f = new File(js); 
     if(f.isFile()) 
      htmlHead.append("<script type='text/javascript' src='" + js + "'></script>"); 
    } 
    htmlHead.append("</head>"); 
    return htmlHead.toString(); 
} 

更新

这段代码是从位于projectName.src.com.projectName.view我的Page类的CSS文件位于项目名称/的WebContent/CSS/style.css中,并从projectName/WebContent/index.jsp调用

回答

1

问:您使用的是什么IDE?这听起来像是Eclipse,在这种情况下,“是的:你应该把你的css /目录放在”WebContent /“下(就像你的”index.jsp“也在”WebContent /“下一样)

... BUT ....

你运行的servlet的根路径是从您的Web服务器上的实际,物理路径不同看看这里:

+0

我正在使用Eclipse。感谢您指点我正确的方向。我将根据您的建议进行快速测试。 – Mike 2013-03-02 22:58:44