6

ASP.NET MVC1 (または 2) Web アプリで静的リソースのリソースを要求した場合、たとえば...画像、javascript ファイル、または css ファイル....NET フレームワークは試行して確認しますか?リクエストがルートリストに一致する場合...そして最終的にそのコントローラーを見つけることができませんか?

例えば。

リソース: /Content/Images/Foo.png

このリクエストはルート リストを通過しますか? コントローラ/アクションをこのリクエストに一致させず、そのパスを直接試行しますか?

4

3 に答える 3

7

RouteCollection.RouteExistingFiles既存のファイルをマップするか、プロパティを設定しないかを選択できます

ASP.NET ルーティングが既存のファイルと一致する URL を処理する必要があるかどうかを示す値を取得または設定します。

これが私がここから読んだものです:

ただし、ルーティング システムは引き続きファイル システムをチェックして、着信 URL がたまたまファイルまたはディスクに一致するかどうかを確認します。一致する場合、ルーティングは要求を無視し (URL も一致する可能性のあるルート エントリをバイパスします)、ファイルが直接提供されます。これは、画像、CSS、JavaScript ファイルなどの静的ファイルに非常に便利です。それらをプロジェクト (たとえば、/Content または /Script フォルダー) に保持し、ルーティングをまったく使用していないかのように、それらを直接参照して提供することができます。ファイルは実際にディスク上に存在するため、ルーティング構成よりも優先されます。

代わりに、ルーティング構成をディスク上のファイルよりも優先したい場合は、RouteCollection の RouteExistingFiles プロパティを true に設定できます。(デフォルトでは false です。)

于 2010-04-21T09:27:56.773 に答える
1

デフォルトでは、ルーティングエンジンは、サーバー上に物理的に存在するすべてのファイルのルートマップを無視します。つまり、MVCアプリが静的ファイルにリンクするために何もする必要はありません。

于 2010-04-21T14:34:22.877 に答える
0

IIS でちょっとしたトリックを行うこともできます。js、画像、css などを仮想ディレクトリの下の Content フォルダーに保存します。

その後、コンテンツ フォルダーのプロパティを (IIS マネージャーで) 表示する場合は、それを仮想ディレクトリとして作成し、ワイルドカード マッピングを削除します。次に、コンテンツ フォルダを通常のディレクトリに戻します。これにより、これらのファイルへの要求が aspnet_isapi ハンドラーによって処理されなくなります。

于 2010-04-21T10:00:31.423 に答える