ASP.NET MVCコントローラーのアクションメソッドは、主に「ビジネス」操作の処理に使用されますが、さらに多くの用途に使用できます。
人々がそのために行動を起こした創造的で有用なものが、他の人にとって実用的または有用であるかもしれないのを見るのは楽しいだろうと思いました。
これが私の貢献です:
Javascriptファイルコンカテネーター-httpリクエストの数を減らすには:
[OutputCache(Duration = 5 * 60, VaryByParam="")] // DONT USE "None" here *
public ContentResult RenderJavascript(){
StringBuilder js = new StringBuilder();
StringWriter sw = new StringWriter(js);
// load all my javascript files
js.AppendLine(File.ReadAllText(Request.MapPath("~/Scripts/jquery.hoverIntent.minified.js")));
js.AppendLine(File.ReadAllText(Request.MapPath("~/Scripts/jquery.corner.js")));
js.AppendLine(File.ReadAllText(Request.MapPath("~/Scripts/rollingrazor.js")));
return new ContentResult()
{
Content = js.ToString(),
ContentType = "application/x-javascript"
};
}
それへのルートをマップします:
// javascript
routes.MapRoute(
"js-route",
"dynamic/js",
new { controller = "Application", action = "RenderJavascript" }
);
マスターページから参照してください:
<script type="text/javascript" src="/dynamic/js"></script>
出力にキャッシュを設定したので、JSを変更してページを更新する場合は、キャッシュを無効にすることをお勧めします。
私は戻ってきて、それをgzipで圧縮する方法を理解する必要があります。
*
VaryByParam = "None"を使用しないでください。これにより、Varyヘッダーが送信され、ブラウザーが戻って新しいバージョンを確認します。あなたが本当にあなたのjsコンテンツを変更しなければならないなら、あなたのユーザーはそれを5分待たなければならないだけです!