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" />*
私はこれに関するどんな助けとアドバイスにも感謝します。
ここで名前の衝突があると思います。 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")
これが私がすることです。 IIS Config> Authentication> RightClickOn Anonymous Auth> Click Edit> Check Application pool identity
テストサーバーへのVS公開を使用する場合、defaultAppPoolを使用します。スタイリングとSimpleMembershipが機能するには、次のものが必要です。
サーバーにASP.NET 4.0をインストールします。 cmd-cd C:\ Windows\Microsoft.NET\Framework\v4.0.30319\Type aspnet_regiis.exe -ir
IISにASP.NET 4.0アプリプールを追加します。
アプリプールとしてASP.NET 4.0を使用するようにサイトを設定します。
SQL ServerにASP.NET 4.0セキュリティログインを追加し、dbcreateロールを付与します。