私はasp.net webformsウェブサイトを開発しています。ウェブサイトの構造:リリースにcssファイルをコーミングした後に画像を参照する
/
capabilities/
capability-A/
style.css
images/
imageA.png
imageB.png
capability-B/
style.css
images/
imageC.png
imageD.png
...
すべてstyle.css
ファイルを組み合わせて/style.css
ファイルに格納されて構築します。対応するcapability/images
フォルダの画像を参照することができるため(相対パスを使用)、すべての画像が/images
フォルダにコピーされます。
デバッグビルドで構造体は変更されません(cssファイルは結合されませんなど)。
ページ上のそれらのイメージを参照しようとすると、問題が発生します。イメージへのパスはデバッグ用とリリースビルドで異なります(デバッグの場合は/capabilities/capability-A/images/foo.png
、リリースの場合は/images/foo.png
など)。
私が考えていた1つの本当に悪い考えは、HttpContext.Current.IsDebuggingEnabled
をチェックし、毎回異なる画像パスを入れたことでした。
もう1つ - 絶対パスを使用するすべての画像を参照し、/images
フォルダに画像をコピーしないでください。このアプローチでは、内容を変更することなくどこでもcssの名前を変更/移動することはできません。
第3の問題は、常にデバッグバージョンのパスを参照することです。各リリースのビルドでは、それらのデバッグバージョンのパスを正しいパスに置き換えます(ただし、簡単なアプローチが必要です)。
cssファイルを結合した後、この参照画像の問題をどのように解決しますか?
あなたは、CSS、画像を参照する方法の例を示していることはできますか? – Louis
@ルイス: '.bg-add like { \t背景画像:url( 'images/add.png'); } ' –
私の場合、デバッグとリリースビルドでは、パスは常にCSSファイルの場所からの相対パスです。 – Louis