3

私は 2 つの VS プロジェクトを持っています。1 つはメイン Web サイト用で、もう 1 つは「静的コンテンツ」Web サイト用で、すべての css、js、画像、およびその他の静的コンテンツが保存され、Cookie のないドメイン経由でアクセスされます。

したがって、すべてのバンドルを作成する静的サイトに BundleConfig.cs があります。

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        bundles.Add(new StyleBundle("~/bundles/styles").IncludeDirectory("~/app/styles", "*.css", true));
        bundles.Add(new ScriptBundle("~/bundles/scripts").IncludeDirectory("~/app/src", "*.js", true));
    }
}

メイン サイトには別の BundleConfig.cs があり、メイン サイトを次のように静的コンテンツ サイトにポイントします。

public class BundleConfig
{
    public static void RegisterBundles(BundleCollection bundles)
    {
        var staticWebsite = ConfigurationManager.AppSettings["StaticWebsite"];
        var versionNumber = ConfigurationManager.AppSettings["VersionNumber"];

        Styles.DefaultTagFormat = string.Format("<link href='{0}{{0}}?v={1}' rel='stylesheet'/>", staticWebsite, versionNumber);
        Scripts.DefaultTagFormat = string.Format("<script src='{0}{{0}}?v={1}'></script>", staticWebsite, versionNumber);

    }
}

@Styles.Render("~/bundles/styles")これで、 and @Scripts.Render("~/bundles/scripts")which render をこのように使用できるようになりました。

<link href='http://mycookielessdomain.com/bundles/styles?v=1.0.0.0' rel='stylesheet'/>
<script src='http://mycookielessdomain.com/bundles/scripts?v=1.0.0.0'></script>

私が抱えている問題は、かどうかに関係なく、コンテンツが常に縮小され、バンドルされているdebug=trueことです。BundleTable.EnableOptimization = false両方の BundleConfig.cs ファイルで使用し@Styles.Render()ても、@Scripts.Render()それぞれ 1 つのタグのみをレンダリングし、縮小されたコンテンツを参照します。

メイン サイトが静的コンテンツ サイトにバンドルされた個々のファイルを認識していないことは理解していますが、メイン サイトの BundleConfig でこれらのパスを手動で指定して、Render() メソッドが最適化がオフになっているときにそれらを個別にリストします...それらをオフにすることができれば、それはです。

4

2 に答える 2

1

BundleTable.EnableOptimization = "false"メインサイトが「バンドル」を参照しているため、デバッグステータスやEnableOptimizationに関係なく、常にバンドルされて縮小されるため、ここでイベントが発生することはありません。

その@Styles.Render("~/bundles/styles")ため、静的サイトでは個々のファイルがレンダリングされますがBundleTable.EnableOptimization = "false"、直接 に移動すると/bundles/styles、縮小されたバンドルが取得されます (メイン サイトから行っていること)。

1 つのオプション (おそらく唯一) は、静的サイトでバンドルを縮小しないように構成することBundleTable.EnableOptimization = "false"です。Bundleこれは、独自のカスタムを継承して使用するクラスを作成することで実現できますIBundleBuilder(各ファイルをバンドルに追加するときに、ファイル名をコメントとして記述することもできます)。正しい方向を示すサンプル コードは、GitHub にあります

于 2014-03-17T14:20:26.950 に答える