minifies and outputcaches the server vars
This commit is contained in:
38
src/Umbraco.Web/Mvc/MinifyJavaScriptResultAttribute.cs
Normal file
38
src/Umbraco.Web/Mvc/MinifyJavaScriptResultAttribute.cs
Normal file
@@ -0,0 +1,38 @@
|
||||
using System.Web;
|
||||
using System.Web.Mvc;
|
||||
using System.Web.UI;
|
||||
using ClientDependency.Core;
|
||||
using ClientDependency.Core.CompositeFiles;
|
||||
|
||||
namespace Umbraco.Web.Mvc
|
||||
{
|
||||
/// <summary>
|
||||
/// Minifies and caches the result for the JavaScriptResult
|
||||
/// </summary>
|
||||
/// <remarks>
|
||||
/// Only minifies in release mode
|
||||
/// </remarks>
|
||||
public class MinifyJavaScriptResultAttribute : ActionFilterAttribute
|
||||
{
|
||||
/// <summary>
|
||||
/// Minify the result if in release mode
|
||||
/// </summary>
|
||||
/// <param name="filterContext"></param>
|
||||
public override void OnResultExecuting(ResultExecutingContext filterContext)
|
||||
{
|
||||
base.OnResultExecuting(filterContext);
|
||||
|
||||
if (filterContext.Result == null) return;
|
||||
var jsResult = filterContext.Result as JavaScriptResult;
|
||||
if (jsResult == null) return;
|
||||
if (filterContext.HttpContext.IsDebuggingEnabled) return;
|
||||
|
||||
//minify the result
|
||||
var result = jsResult.Script;
|
||||
var minifier = new JSMin();
|
||||
var minified = minifier.Minify(result);
|
||||
jsResult.Script = minified;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user