0

このプロジェクトでは、ビルド後のイベントとしてYUI Compressorを実行し、Visual Studio 2010、.NET 4、およびMVC2を使用しています。

問題は、メンテナンスが不可能な1つの大きなcssファイルがあったため、それをさまざまなフォルダー内の多くのCSSファイルに分割したことです。

  1. /Assets/Styles/Site.css
  2. /Assets/Styles/Pages/Page1.css
  3. /Assets/Styles/Pages/Page2.css
  4. /Assets/Styles/Pages/Page-nth.css
  5. /Assets/Styles/Partials/Partial1.css
  6. /Assets/Styles/Partials/Partial1.css
  7. /Assets/Styles/Partials/Partial-nth.css

そんな感じ。

これは開発には適していますが、本番環境には適していません。本番環境では、すべてのマージ/縮小バージョンである1つのファイルしかありません。このファイルは、/ Assets / Styles/style.cssにあります。

イメージパスをdevとprodで同じにすることはできないため、この設計が問題を引き起こしています。(ステージングとuatもありますが、物事をシンプルに保つことができます)

それに対するいくつかの解決策があります。絶対パスを使用するか、多くの縮小/マージcssファイルを適切なフォルダー(Pages.css / Partials.css)に配置するか、Cookieのないサブドメイン(静的.domain.com)これが私がやりたいことです。

だから私の質問は:CSSファイルで「../../image.png」を「http://static.domain.com/image.png」に自動的に名前変更するにはどうすればよいですか?YUI Compressorはそれを行うことができますか?それを実行するビルドコンソールプロジェクトを作成する必要がありますか?あなたは私のためにそれをするツールを知っていますか?他の提案?!

前もって感謝します!

4

1 に答える 1

0

YUI-compressorはそれを行うことができません。

ファイルをループして、すべてのパスを新しい絶対パスに置き換える必要があります。これは、正規表現を使用して簡単に行うことができます。これをWindowsバッチで簡単に実行できるかどうかはわかりませんが、unix sedまたは任意のスクリプト(perl、python ...)を使用すると簡単です。.NETに精通している場合は、コンソールプロジェクトをビルドし、ビルド後のイベントとして実行できます。

お役に立てれば。

于 2011-06-30T07:58:17.497 に答える