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。任何帮助表示赞赏。

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 文件位于 projectName/WebContent/css/style.css 中,它是从 projectName/WebContent/index.jsp 调用的

4

1 回答 1

1

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

... 但 ....

正在运行的 servlet 的根路径与Web 服务器上的实际物理路径不同。看这里:

于 2013-03-02T22:50:28.913 回答