0

次のコードを使用して、css ファイルを Web プロジェクトに動的に追加しています。ただし、css ファイルへの絶対パスを書き出すと、Web プロジェクトの外部に何かが返されます。たとえば、テストのために、css/style.css を cssAssets ArrayList に追加しました。の状態を確認するとf.isFile()home/*username*/css/styles.cssindex.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

Q: どの IDE を使用していますか? Eclipse のように聞こえますが、この場合、「はい: css/ ディレクトリを "WebContent/" の下に置く必要があります ("index.jsp" も "WebContent/" の下にあるように)。

... しかし ....

実行中のサーブレットのルート パスは、Web サーバー上の実際の物理パスとは異なります。ここを見て:

于 2013-03-02T22:50:28.913 に答える