Visual Studio開発Webサーバー内で完全に実行され、特定のIISWebサーバーで実行されるASP.NETMVC3Webアプリケーションを作成しました。
同じWebアプリケーションを別のIISWebサーバーに正常に公開しました。奇妙な振る舞いを除いて、それはうまく動作します。
コントローラのアクションで問題なくコンテンツが返されますが、レイアウトページがレンダリングされません。コントローラーアクションによって返されるコンテンツのみが返されることになります。
私は何が欠けていますか?
Visual Studio開発Webサーバー内で完全に実行され、特定のIISWebサーバーで実行されるASP.NETMVC3Webアプリケーションを作成しました。
同じWebアプリケーションを別のIISWebサーバーに正常に公開しました。奇妙な振る舞いを除いて、それはうまく動作します。
コントローラのアクションで問題なくコンテンツが返されますが、レイアウトページがレンダリングされません。コントローラーアクションによって返されるコンテンツのみが返されることになります。
私は何が欠けていますか?
Urlヘルパーを使用する代わりに、ビュー内のスクリプトとCSSへのURLをハードコーディングしたに違いありません。あなたが書いた:
<link href="/Content/Site.css")" rel="stylesheet" type="text/css" />
正しい方法の代わりに:
<link href="@Url.Content("~/Content/Site.css")" rel="stylesheet" type="text/css" />
またはあなたが書いた:
<script src="/Scripts/jquery-1.5.1.min.js"" type="text/javascript"></script>
正しい方法の代わりに:
<script src="@Url.Content("~/Scripts/jquery-1.5.1.min.js")" type="text/javascript"></script>
次に、このようなURLをハードコーディングしたすべての場所を検索し、ヘルパーによって生成されたURLに置き換えます。
IISに展開したときにサイトが機能しない理由は、IISには、おそらく考慮しなければならない仮想ディレクトリがあるためです。したがって、正しいアドレスはhttp://example.com/myappname/content/site.css、ローカルで実行している場合、そのようなディレクトリはありませんhttp://localhost:1234/content/site.css。