アプリケーションのすべての静的コンテンツ (js、css、画像 - png、gif、jpeg、jpg) を RouteHandler にルーティングしたいと考えています。Web サイトを高速化するためのベスト プラクティスを実行する場所。すべての静的コンテンツに ETag、キャッシュ コントロール、有効期限などを追加するのと同じように。
どうすればそれができますか?
アプリケーションのすべての静的コンテンツ (js、css、画像 - png、gif、jpeg、jpg) を RouteHandler にルーティングしたいと考えています。Web サイトを高速化するためのベスト プラクティスを実行する場所。すべての静的コンテンツに ETag、キャッシュ コントロール、有効期限などを追加するのと同じように。
どうすればそれができますか?
実際には IIS で行う必要があります。
しかし、それを完全に制御したい場合は (正当な理由が見つかりません!)、キャッチオール ルートを最後のルートとして追加できます。何かのようなもの:
routes.MapRoute(
"Static",
"{*path}",
new { controller = "Home", action = "Static"});
次に、それを処理するアクションをコントロールに追加します。
public ActionResult Static(string path)
{
//path is everything you get after the /
//Use Server.MapPath to load it
//Add headers to response, etc
return File();
}
しかし、これは私の意見では本当に悪いです。最も明白なことは、URL からパスを取得し、それをサーバーにマップすることです。パスが の場合はどうなります/../../Windows/...
か? おそらく何でもないのですが、私はそれが好きではありません。