3

私が取り組んでいる非常に大規模な Web コード ベースがあり、Spring やその他のさまざまなフレームワークを使用する複数のプロジェクトがあります。私は Web 開発にかなり慣れていないので、ここに用語の誤用がある場合、または必要な説明がある場合はお知らせください。

現在、できるだけ多くのアイコンを 1 つのプロジェクトに集中させる方法を検討しています。

.laf プロジェクト。

私の質問は、他のプロジェクトの CSS です。これらの img ファイルを次のように参照できます。

.trash {
    background:url(/demo/static/package/name/laf/images/trash.png) no-repeat;
    color:#FFF;
    cursor:pointer;
}

ルート ディレクトリ (/demo) は、プロジェクトをデプロイする場所によって変わります。異なるコンテキストに展開するたびに、この方法で使用されるすべてのイメージ ファイルの /demo タグを変更する必要はありません。

デプロイされたコンテキストが何であれ、css で参照する方法はありますか? それとも、これはより高いレベルで処理する必要があるものですか?

4

4 に答える 4

1

これを行う 1 つの方法 (Java を使用している場合) は、jsp またはサーブレットを使用して css を生成することです。jsp ルートに進み、Spring タグを使用している場合は、<spring:url>タグを使用してコンテキスト相対 URL を生成できます。

同様の方法で、PHP / Ruby /その他のMicrosoftテクノロジーを使用して実行できると確信しています。

Java でこれを行う方法については、こちらを参照してください。

あなたが基本的に持っているのはこれです:

web.xml で:

<servlet-mapping>
  <servlet-name>jsp</servlet-name>
  <url-pattern>*.css</url-pattern>
</servlet-mapping>

あなたの.cssファイルで:

<%@ taglib uri="http://www.springframework.org/tags" prefix="spring" %>
<spring:url var="myImage" value="/images/image.png" />

...

.myclass {
    background: url(${myImage});
}

これがレンダリングされると、次のようになります。

.myclass {
     background: url(/context/images/image.png);
}

/contextWeb アプリケーションがコンテキストで実行されている場合。

于 2013-10-03T20:03:46.287 に答える
1

相対 URL を使用したい。

CSS の URL は(あなたのように)絶対にすることもできますが、相対にすることもできます。それが最もよく使われる方法です。

相対 URL は、それらが定義されている CSS ファイルから検索を開始します。したがって、次のようなものを使用できます。

.trash {
    background:url(../images/trash.png) no-repeat;
    color:#FFF;
    cursor:pointer;
}

これは (CSS ファイルの URL からわかるように) 1 つのフォルダーをトラバースし、次に images フォルダーに移動してから、trash.png を取得します。

これは明らかに、CSS フォルダーから見た画像フォルダーが一定の場所にある場合にのみ機能します。

于 2013-11-06T14:46:59.533 に答える
0

Web サーバーには何を使用していますか? 可能であれば、環境ごとに異なる仮想ディレクトリを設定して、これを解決できます。

于 2013-10-03T19:59:06.417 に答える
0

これはサーバー側で変更する必要があり、CSS ではこの効果を実現できません。

于 2013-10-03T19:58:14.390 に答える