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分钟!