29

VS 2013 RTM で新しい MVC 5 アプリを作成しました。何らかの理由で、CSS ファイルの背景画像の URL が変換されませんでした。

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

これは、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);
        }
    }
}
4

3 に答える 3

72

縮小版の CSS を使用している場合、変換が実行されないようです。.min.css ファイルを削除すると、機能し始めるはずです。

于 2013-11-06T16:14:31.510 に答える
5

これを、マークされた回答の下にコメントとして入れたいと思います。しかし、私にはそうする権利がありません。答えは私を助けました。また、別の解決策を見つけました。Bundle-configuration メソッドで、これを追加します。

  • BundleTable.Bundles.FileExtensionReplacementList.Clear();

これにより、*.min.css ファイルが自動的に含まれるのを回避できます。そして変換が呼び出されます。

よろしくハンス

于 2016-09-27T10:08:37.560 に答える