2011-08-12 9 views
0

私は自分のサイトのCSSスプライトを処理するために、Aspスプライトと画像最適化フレームワークhereを使用しています。ブラウワーに応じて、フレームワークは、残念ながら、CSSファイルが縮小されていないこれらの2つのファイルMVCのCSSルートをキャプチャ

/App_Sprites/highCompat.css - ie9, firefox, chrome 

    /App_Sprites/lowCompat.css - ie6, ie7 

を指す2つの異なるリンクを生成し、その現在の場所から移動することはできません。

私は自分の小型化エンジンを持っていますが、Ajaxminライブラリをラップして、圧縮されたCSSをその場で実行するハンドラを使用しています。

これは、このようなパスを取得します。

/css.axd?path=reset.css|style.css|helpers.css

どのようにMVCと私は要求をキャプチャし、CSSが私のminifierを介して提供されるので、それを書き換えることができますか?

乾杯!

答えて

2

本当に簡単です:あなたのマークアップのURIがどこにあるのかを除いてCSSを置いてください。

物理ファイルが存在する場合、IISはルートハンドラを実行しません。したがって、サイトに物理的な~/App_Sprites/highCompat.cssファイルがある場合、アプリはそれを傍受することはできません(となりますが、これはHttpModuleで行います)。しかし、ファイルを別の場所に置いて、App_SpritesControllerを持っていれば、MVCでいつものように処理できます。

したがって、HttpModule(これはおそらく私の選択になります)を書き込むか、MVCで行う必要がある場合は、ファイルの場所を変更します。

+0

ファイルを移動する際の問題は、観測用のブラウザに基づいてパスが動的に生成されることです。 ie9、firefoxなどのhighCompatとie6、ie7のlowCompatです。私はそれを明確にするために私の質問を更新しました。 –

+0

これはまったく問題ではありません。フォルダは常に同じようです。したがって、[HandleUnknownAction](http://msdn.microsoft.com/en-us/library/system.web.mvc.controller.handleunknownact​​ion.aspx)をオーバーライドしてください。 'actionName'引数はファイル名になります。 –

+0

ああ...私は光を見始めていると思う。速いGoogleは、私がこれをどのように実装するかを慎重に踏むべきだと示唆しているようだ。コードサンプルはありますか? –