1

ホストにアクセスしてバンドルを構築したいと考えています。Application_start で httpcontext にアクセスするのは簡単ではないことはわかっています。

Request.url.hostinRegisterBundlesメソッドを見つけるための他の回避策をアドバイスできますか

Global.asax

 protected void Application_Start()
        {
          BundleConfig.RegisterBundles(BundleTable.Bundles);
        }

BundleConfig.asax

public static string host { get; set; }
        public static string siteCssFileName { get; set;  }
        public static void RegisterBundles(BundleCollection bundles)
        {
host = "~";
            if (System.Web.HttpContext.Current.Request.Url.Host.Contains("local"))
                host = "http://localhost:xxx";
                else
                host=Request.url.host;
                bundles.Add(new StyleBundle("~/Content/jQuery/ui/css")
                  .Include(host+"/css/jQuery/hro-0079c1/jquery-ui-1.8.11.custom.css"));
         }
4

2 に答える 2

1

編集:代替アプローチの提案。

これを行うには、いくつかの方法があります。

  • バンドルの2つのバージョンを作成します
  • Request.IsLocal適切なバンドルのセットをチェックしてレンダリングする部分ビューを追加します
  • レイアウトから部分ビューを呼び出す

別のアプローチは、パスを解決するHtmlHelperメソッドを作成することです。

さらに別のアプローチは、複数のレイアウトを作成し、ビュースタートで使用する正しいレイアウトを決定することです。

これを実装する方法はたくさんありますが、いくつかあります。

于 2013-02-01T21:20:44.103 に答える
0

アプリケーション開始イベントでRequest オブジェクトを取得できなかったため、タスクを達成するために以下のアプローチを選択しました。私が知りたかったのは、アプリ開始イベントのホストだけでした。

  1. Web.Config トランスフォームの作成
  2. のような各環境でアプリ キーを追加します。 <add key="cdnReference" value="http://localhost:xxxx/" />
  3. アプリの開始イベントのキーを次のように読み取りますcdnHost = ConfigurationManager.AppSettings["cdnReference"];
于 2013-02-11T15:27:27.597 に答える