2013-10-27 21 views
25

私はVS 2013 RTMで新しいMVC 5アプリケーションを作成しました。 何らかの理由で、私のCSSファイルの背景画像URLが変換されていませんでした。CssRewriteUrlTransformが呼び出されていません

問題をデバッグするために、私は自分のカスタムCssRewriteUrlTransformラッパーを作成しました。 そして、ブレークポイントが呼び出されていないことがわかりました。

これは、あなたがCSSの縮小さバージョンを持っている場合、変換は実行されません表示されます、私は私のBundleConfig.csに持​​っているもの

using System.Web.Optimization; 

namespace Utilities.Web 
{ 
    public class BundleConfig 
    { 
     private const string JQUERY_CDN_URL = "//code.jquery.com/jquery-1.10.1.min.js"; 

     public static void RegisterBundles(BundleCollection bundles) 
     { 
      bundles.UseCdn = true; 
      BundleTable.EnableOptimizations = true; 

      bundles.Add(new StyleBundle("~/css/coming-soon") 
       .Include("~/Content/Site/coming-soon.css", 
        new CssRewriteUrlTransformWrapper())); 

      bundles.Add(new ScriptBundle("~/js/coming-soon") 
       .Include("~/Scripts/jquery.placeholder.js") 
       .Include("~/Scripts/Site/coming-soon.js")); 

      bundles.Add(new ScriptBundle("~/js/jquery", JQUERY_CDN_URL) 
      { 
       CdnFallbackExpression = "window.jQuery" 
      }.Include("~/Scripts/jquery-{version}.js")); 
     } 
    } 

    public class CssRewriteUrlTransformWrapper : IItemTransform 
    { 
     public string Process(string includedVirtualPath, string input) 
     { 
      return new CssRewriteUrlTransform().Process(includedVirtualPath, input); 
     } 
    } 
} 
+0

まったく同じコードがMVC4(VS 2012)で動作している場合、あなたは確かに知っていますか? –

+0

いいえ、私はMVC 4でそれを試したことはありません。しかし、それはWeb最適化フレームワークの以前のバージョンで動作します。 – Moon

+2

MVC 4とWeb Optimization v1.1.2で同じ問題が発生しています –

答えて

62

です。 .min.cssファイルを削除すると、作業が開始されます。

+8

また、縮小版を直接参照すると、トランスフォームが正しく動作するように見えます。 – Chris

+4

Randallありがとう、私はこれ以上無駄にどのくらいの時間を信じることができません:) – Richard

+4

私はこの100回アップ投票することができます! – im1dermike

3

私はこれをコメントとして答えたいと思っていたでしょう。しかし私はそうする権利はありません。答えは私を助けました。私はまたそれのための別の解決策を見つけた。バンドル設定方法では、次のように追加します。

  • BundleTable.Bundles.FileExtensionReplacementList.Clear();

これにより、* .min.cssファイルが自動的に含まれなくなります。変換が呼び出されます。

よろしくハンス

+0

この動作が最初に実装されたということは私には間違いです。私はこれらの.minファイルに何度も噛まれた回数を数多くの理由で数えることはできません。あなたの解決策は少し極端です(.minファイルだけを削除するのではなく、完全なリストをクリアします)。実際には、1つの要素を削除するパブリックAPIがないようです...だから、問題を解決するには、今まで見たことがあります。 – youen

関連する問題