web-dev-qa-db-ja.com

IISデプロイメント(MVC 4)の後でスタイルバンドリングが機能しない

IISへの展開後のスタイルシートのバンドルに問題があります。私は自分の問題を実証する簡単なソリューションを作成しました。

単一のコントローラーと "Hello World"文字列を含むビューを使用して、簡単なテストプロジェクト(VS 2012、MVC 4)を作成しました。

(テスト)CSSをコンテンツフォルダーの下に作成しました。

Content\helloWorldCss\helloWorldStyle.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を変更し、バンドル参照を使用する代わりに「通常の」参照を同じCSSに追加すると、発行後に問題なくCSSが適用されることです。

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

私はこれに関するどんな助けとアドバイスにも感謝します。

15
Omri

ここで名前の衝突があると思います。 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")
13

これが私がすることです。 IIS Config> Authentication> RightClickOn Anonymous Auth> Click Edit> Check Application pool identity

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

7
shiroxx

テストサーバーへのVS公開を使用する場合、defaultAppPoolを使用します。スタイリングとSimpleMembershipが機能するには、次のものが必要です。

  1. サーバーにASP.NET 4.0をインストールします。 cmd-cd C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Type aspnet_regiis.exe -ir

  2. IISにASP.NET 4.0アプリプールを追加します。

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

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

0
Yini