2

アプリケーションのすべての静的コンテンツ (js、css、画像 - png、gif、jpeg、jpg) を RouteHandler にルーティングしたいと考えています。Web サイトを高速化するためのベスト プラクティスを実行する場所。すべての静的コンテンツに ETag、キャッシュ コントロール、有効期限などを追加するのと同じように。

どうすればそれができますか?

4

1 に答える 1

1

実際には 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/...か? おそらく何でもないのですが、私はそれが好きではありません。

于 2012-03-08T23:15:00.750 に答える