我已经为HTML缩小实现了两个动作过滤器,另一个用于将脚本移动到页面末尾。
对于HTML缩小我使用NuGet包WebMarkupMin并将内联脚本移动到我的页面底部我正在使用NuGet包BundleMinifyInlineJsCss。
要实现BundleMinifyInlineJsCss,我已遵循此link。
我已经从Global.asax.cs文件全局声明了这两个过滤器,如下面的顺序:
GlobalFilters.Filters.Add(new MinifyHtmlAttribute());
GlobalFilters.Filters.Add(new ReplaceTagsAttribute());
对于ReplaceTagsAttribute我使用OnActionExecuting方法,如下所示:
public override void OnActionExecuting(ActionExecutingContext filterContext){
var response = filterContext.HttpContext.Response;
if (response.Filter == null) return; // <-----
response.Filter = new BundleAndMinifyResponseFilter(response.Filter);
}
但是,如果我同时使用这两个过滤器,它会生成缩小代码twise。因此,我在Firebug中面临这样的问题:
History.js适配器已加载“
请注意,如果我添加过滤器 - GlobalFilters.Filters.Add(new ReplaceTagsAttribute());
,则只会发生问题。
我该如何解决这个问题? 任何帮助表示赞赏。