2013-09-22 18 views
12

IISに配備した後、自分のスタイルシートをバンドルする際に問題が発生します。 私は問題を実証するための簡単なソリューションを作成しました。IIS配備後にスタイルバンドルが機能しない(MVC 4)

私は単純なテストプロジェクト(VS 2012、MVC 4)を、1つのコントローラと "Hello World"文字列を含むビューで作成しました。私はその後、

Content\helloWorldCss\helloWorldStyle.css 

を変更する簡単なシンプルなカラーとコンテンツフォルダの下に(テスト)CSSを作成しました

、私は私のBundleConfig.csクラスを編集して、私のCSSへのパスを追加しました新しいバンドル:次に

  bundles.Add(new StyleBundle("~/Content/helloWorldCss").Include("~/Content/helloWorldCss/helloWorldStyle.css")); 

は、私は私の_Layout.cshtmlに新しいバンドルを追加しました:

@Styles.Render("~/Content/helloWorldCss") 

VS(またはページインスペクタ)経由でアプリケーションを実行すると、CSSが正常に適用され、すべてが正常であるようです。しかし、私のプロジェクトをIISに(VSを介して)公開/展開するとHTMLが表示されますが、CSSは適用されません。 次のファイルは、展開後に存在している:本当に私を困惑何

Content\helloWorldCss\helloWorldStyle.css 

は、私は私の_Layout.cshtmlを変更すると、バンドルREFを使用するのではなく、同じCSSに「定期的に」参照を追加するときに、CSSが適用されていることです出版後に何の問題もありません。

<link href="@Url.Content("~/Content/helloWorldCss/helloWorldStyle.css")" rel="stylesheet" type="text/css" />* 

私はこれに関する助けとアドバイスをありがとうと思います。

答えて

12

ここで名前の衝突があると思います。 ASP.NET MVCは、細工の後にhttp://example.org/Content/helloWorldCssにファイルを作成し、既に同じパスのフォルダを持っています。バンドルの名前を変更した後にもう一度試してみることはできますか?

BundleConfig.cs:

bundles.Add(new StyleBundle("~/Content/helloWorld").Include("~/Content/helloWorldCss/helloWorldStyle.css")); 

_Layout.cshtml:

@Styles.Render("~/Content/helloWorld") 
+0

あなたは正しいです。これは確かに問題でした。ありがとう! – Omri

+0

ここでは「〜」記号が混乱の主な原因です。バンドルを定義するには、符号が必要です。これは私がそうしてはいけないフォルダパスでなければならないと思った。 :)ありがとう!!助けて頂きました。 – mrsrizan

6

これは私が何をすべきかです。 IIS構成]> [認証]> [RightClickOn匿名認証>あなたはVSは、テストサーバーに公開使うアプリケーションプールID

IIS Config>Authentication>RightClickOn Anonymous Auth>Click Edit> Check Application pool identity

+0

これは最も簡単な修正と最善の答えでした。ありがとう! –

+0

大きな修正!なぜデフォルトではそのように設定されていないのですか?常にセキュリティのためにIISアプリケーションプールを使用する必要があります。ありがとうございました!! –

0

チェック> [編集]をクリックし、それはのDefaultAppPoolは使用しています。スタイリングとSimpleMembershipについては はあなたが必要とする動作するように:

  1. は、サーバー上のASP.NET 4.0をインストールします。 CMD - CDのC:\ WINDOWS \ Microsoft.NET \ Frameworkののの\ v4.0.30319 タイプAspnet_regiis.exeに\

  2. -ir IISでASP.NET 4.0アプリケーションプールを追加します。

  3. ASP.NET 4.0をアプリケーションプールとして使用するようにサイトを設定します。

  4. ASP.NET 4.0セキュリティログインをSQL Serverに追加し、dbcreateロールを付けます。

関連する問題