Tag: asp.net optimization

如何根据浏览器版本捆绑特定的CSS?

我正在使用MVC4 StyleBundle来捆绑一堆CSS。 IE 9或更低版本只需要一个CSS。 在我的BundleConfig类的RegisterBundles方法中,我有: if (HttpContext.Current.Request.Browser.Browser.Trim().ToUpperInvariant().Equals(“IE”) && HttpContext.Current.Request.Browser.MajorVersion <= 9) cssBundle.Include("~/Content/ie.css"); 但后来我得到了一个Request is not available in this context错误中Request is not available in this context 。 在RegisterBundles方法中是否无法检测浏览器?

ResolveBundleUrl无法解析所有文件?

我是MVC的新手,所以我想开始一个新项目并尝试MVC4中的一些新function。 我的Content目录中有两个css文件, normalise_mini和site.css 。 当我使用以下代码时: 它只需要我的site.css文件而不是我的规范化文件。 我的应用开始时有以下内容: protected void Application_Start() { // Remove all other view engines except razor: ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine()); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); BundleTable.Bundles.RegisterTemplateBundles(); BundleTable.Bundles.EnableDefaultBundles(); } 我是否需要为每个css文件创建一个包(就像这个人一样)? 或者它应该只是自动找到所有的css文件(我希望这是默认行为)。 值得注意的是,我开始将这个项目作为基于Razor视图引擎的空网站(实际上根本不是空的:/) 提前致谢 更新 根据发布的链接,我需要注释掉注册模板包的行。 例如: protected void Application_Start() { // Remove all other view engines except razor: ViewEngines.Engines.Clear(); ViewEngines.Engines.Add(new RazorViewEngine()); AreaRegistration.RegisterAllAreas(); RegisterGlobalFilters(GlobalFilters.Filters); RegisterRoutes(RouteTable.Routes); //BundleTable.Bundles.RegisterTemplateBundles(); // […]

使用MS Bundling清空捆绑包

我正在使用asp.net mvc4以及MS使用System.Web.Optimization库(1.1.0)和使用dotless的自定义LessTransform提供的内置捆绑和缩小。 该站点托管在IIS 7中。我的问题是网站间歇性地捆绑是空的,导致网站加载所有奇怪。 http://site/Content/surveycss? 什么可能导致这个? UPDATE 我读过如果较少的编译器遇到错误,则可能导致空包。 我已经测试了较少的错误,没有。 我发现捆绑包配置为使用Content目录的方式可能存在问题,因此我将其更改为: bundles.Add(new StyleBundle(“~/Content/bootstrap”) .Include(…)); 至: bundles.Add(new StyleBundle(“~/cssbundles/bootstrap”) .Include(…)); 重新部署应用程序后,它似乎解决了这个问题。 然而,它再次发生。 该设置是一个负载平衡器,具有2个IIS服务器。 今天,我登录到服务器1并通过IIS浏览了该网站,它正在加载正常。 登录到服务器2并通过IIS浏览站点会产生捆绑问题。 更新2 测试资源可能正在使用的想法。 我尝试删除导致该问题的捆绑包中的较少文件。 成功删除的文件越少。 恢复.less文件后,直接浏览到服务器时问题就消失了。 更新3 这个问题刚刚开始在dev服务器上出现,该服务器没有使用不使用无点的bundle进行负载平衡 bundles.Add(new StyleBundle(“~/cssbundles/bootstrap”) .Include(“~/Content/bootstrap/bootstrap.css”)); 这是因为nuget包升级而且文件不再位于引用的位置。 我仔细检查了所有其他捆绑包,以确保文件仍然存在于它们被引用的位置,并且它们确实存在,所以这不是问题。 更新4 添加了无点配置的日志记录并收到此消息: 06-12-2013 16:08:07.814,10.183.130.143,demo.app.com,/cssbundles/bundlecss?v=WN4weCPcGs3GJ_Hgsm2B7qNotYNgbrMS6xwEt8SWK6M1,user@email.com,” directive block with unrecognised format on line 1: []: /beginning of file [1]: @v: WN4weCPcGs3GJ_Hgsm2B7qNotYNgbrMS6xwEt8SWK6M1; ^ [2]: […]

使用Microsoft Web Optimization Framework时,请勿对某些文件进行uglify

我正在尝试使用Microsoft Web Optimization框架将大量.js文件连接到一个文件中。 一切正常,但在这些文件中,我有几个已经缩小和丑化,并且不需要再次处理它们。 例如,我有recaptcha_ajax.js文件,并在附加时导致以下错误: /* Minification failed. Returning unminified contents. (715,29-36): run-time error JS1019: Can’t have ‘break’ outside of loop: break t (714,293-300): run-time error JS1019: Can’t have ‘break’ outside of loop: break t (678,210-217): run-time error JS1019: Can’t have ‘break’ outside of loop: break t (671,1367-1374): run-time error JS1019: Can’t have ‘break’ outside […]

无法加载文件或程序集“WebGrease”之一的依赖项。 定位的程序集的清单定义与程序集引用不匹配

这个问题有很多解决方案,请阅读下面的所有答案,它们也可以帮助您解决问题。 如果您找到解决此问题的新方法,请在答案中记录 我试图将System.Web.Optimization添加到我的ASP.NET Web窗体解决方案。 我通过NuGet包添加了Microsoft ASP.NET Web Optimization Framework。 它将Microsoft.Web.Infrastracture和WebGrease(1.5.2)添加到引用中。 但是,当我跑 我得到运行时错误 Could not load file or assembly ‘WebGrease, Version=1.5.1.25624, Culture=neutral, PublicKeyToken=31bf3856ad364e35’ or one of its dependencies. The located assembly’s manifest definition does not match the assembly reference. (Exception from HRESULT: 0x80131040) 我已经尝试将assemblyBinding添加到Web.Config 但没有任何运气。 我注意到我的WebSite的Web配置包含这一行 如果我用它替换它 然后一切正常,我没有得到运行时错误。 不幸的是,我需要xmlns。 我项目的其他组件依赖于它。 为什么优化会在架构指向v2.0时尝试加载旧版本? 有没有办法强制它加载最新或唯一可用的WebGrease.dll? 如果不改变,我还能尝试什么 ? 感谢您提供任何帮助! 编辑:1)附加FusionLog结果。 […]

MVC4捆绑缓存头

我想更改从捆绑请求发送的缓存标头。 目前它是由User-Agent改变但我不希望它,有没有办法更改捆绑请求发送的标头? 在快速查看System.Web.Optimization程序集后,我可以看到标题在Bundle.SetHeaders中设置,这是一个私有静态函数,所以我不认为它可能,尽管我希望被certificate是错误的。