1

ASP.NET 4 Webフォームルーティングを使用しています。たとえば、次のようになります。

routes.MapPageRoute("page-browse", "{Language}/{Label}", "~/Default.aspx")

したがって、webadressは次のようになります。http://localhost/mywebsite/eng/home

私のウェブサイトのルートには、「画像」フォルダがあります。

画像表示は、ウェブサイトのルートにいるときに機能します。http://localhost/mywebsite/default.aspx

ただし、ルーティングを使用する場合は機能しません。これは、画像の相対URLがhttp://localhost/mywebsite/eng/images代わりに表示されるためです。http://localhost/mywebsite/images

ASP.NET 4ルーティングメカニズムを使用してこれを防ぐ方法はありますか?または、画像に絶対URLを使用する唯一の方法ですか?

4

3 に答える 3

5

あなたが試すことができる2つのこと。

1)RouteExistingFilesをfalseに設定します。これにより、サーバーが既存のファイルと一致するファイルのルーティングが停止します。ルートに一致する「仮想」URLのみが実際にルーティングされます。

routes.RouteExistingFiles = false;

2)StopRoutingHandlerルートを使用します。たとえば、これによりすべてのjpgのルーティングが停止します。画像ディレクトリ全体を無視するように設定することもできます。

routes.Add(new Route("*\.jpg", new StopRoutingHandler()));
于 2011-03-02T16:35:47.063 に答える
1
  1. IHttpHandler仮想パスからファイルの絶対パスを見つけてファイルストリームとしてレンダリングする実装を 作成します。

  2. IRouteHandlerファイルに画像拡張子がある場合は今説明したhttpハンドラーを返す実装を作成し、そうでない場合はデフォルトのルーティングメカニズムを使用します。

  3. ルートで使用するルートハンドラーを登録します。

于 2011-03-05T18:59:17.947 に答える
0

画像をどのように参照していますか?プレフィックス「/」を使用して、サイトルートへの仮想パスを使用できるはずです(質問を完全に誤解していない限り)

例えば

<img src="/mywebsite/images/image.jpg" />
于 2010-07-09T15:36:49.590 に答える