0

アプリケーションの「スタイル」と「スクリプト」のいくつかが、異なる環境のアプリケーションから参照されています。

  1. ローカルサイトの参照元http://localhost:123/mystyles/default.css
  2. 開発サイトはから参照していますhttp://mydev.com/mystyles/default.css
  3. prod サイトの参照元http://prod.com/mystyles/default.css

以下のようなバンドルでcdnを少し調整しようとしましたが、役に立ちませんでした。

public static void RegisterBundles(BundleCollection bundles)
        {
            bundles.Clear();
            bundles.ResetAll();

            BundleTable.EnableOptimizations = false;
            bundles.UseCdn = true;

            if (HttpRuntime.BinDirectory.Contains("local"))
                cdnHost = "http://localhost:123/";
            else if(condition)
                cdnHost = "http://mydev.com/";
            else
                cdnHost = "http://prod.com/";

            bundles.Add(new StyleBundle("~/Content/HRO/jquery/ui/css", cdnHost)
                .Include("~/css/jQuery/hro-0079c1/jquery-ui-1.8.11.custom.css"));

            bundles.Add(new StyleBundle("~/Content/HRO/jquery/ui/css", cdnHost)
               .Include("~/css/jQuery/hro-0079c1/jquery-ui-1.8.11.custom.css"));

            bundles.Add(new StyleBundle("~/Content/HRO/base/css", cdnHost)
               .Include("~/css/base.css"));

            bundles.Add(new StyleBundle("~/Content/HRO/reset/css", cdnHost)
               .Include("~/css/reset.css"));
        }

しかし、これはうまくいきません。これらのバンドルを以下のように呼び出すと

    @Styles.Render("~/Content/HRO/jquery/ui/css")
    @Styles.Render("~/Content/HRO/base/css")
    @Styles.Render("~/Content/HRO/reset/css")

RegisterBundles() をデバッグしようとしましたが、cdn url でこれらのアイテムを作成していないようです。

これは、バンドルの絶対 CSS URL を作成する正しい方法ですか? ここで何か不足していますか?RegisterBundles() をデバッグするより良い方法はありますか?

4

4 に答える 4

0

Scriptsおよび次の方法で使用できる SupportsメソッドStylesから:System.Web.OptimizationRenderFormat

@{
    var hostName = "www.example.com";
    var styleFormat = "<link href=\"" + hostName+ "{0}\" type=\"text/css\" rel=\"stylesheet\"/>";
}


@Styles.RenderFormat(styleFormat, "~/styles/vendor")
于 2016-02-19T10:23:52.677 に答える
0

CDN URL を使用するには、EnableOptimizations と EnableCDN の両方を true に設定する必要があります。

于 2013-02-06T18:52:11.130 に答える
0

たとえば、次のようなものを試してください。

bundles.Add(new StyleBundle("~/Content/HRO/jquery/ui/css"," http://mydev.com/css/jQuery/hro-0079c1/jquery-ui-1.8.11.custom.css " ));

よくできました。私ができることは、1 つのバンドルに複数のスタイルをグループ化することです。

幸運を!

于 2014-02-05T18:31:43.733 に答える