【发布时间】:2013-12-06 18:06:08
【问题描述】:
我正在使用 asp.net mvc4 以及 MS 使用 System.Web.Optimization 库 (1.1.0) 和使用 dotless 的自定义 LessTransform 提供的内置捆绑和缩小。该网站托管在 IIS 7 中。我的问题是网站上的捆绑包间歇性地是空的,这导致网站加载很奇怪。
http://site/Content/surveycss?
这是什么原因造成的?
更新
我了解到,如果 less 编译器遇到错误,它可能会导致一个空包。我测试了 less 的错误,没有。
-
我发现捆绑包配置为使用内容目录的方式可能存在问题,因此我将其更改为:
bundles.Add(new StyleBundle("~/Content/bootstrap") .Include(...));
到:
bundles.Add(new StyleBundle("~/cssbundles/bootstrap")
.Include(...));
重新部署应用程序后,问题似乎得到了解决。然而,它又发生了。该设置是具有 2 个 IIS 服务器的负载平衡器。今天,我登录到服务器 1 并通过 IIS 浏览了该站点,并且加载正常。
登录到服务器 2 并通过 IIS 浏览网站会出现捆绑问题。
更新 2
测试资源可能正在使用的想法。我尝试删除导致问题的捆绑包中较少的文件。较少的文件已成功删除。恢复 .less 文件后,直接浏览到服务器时问题就消失了。
更新 3
这个问题刚刚开始出现在没有使用不使用 dotless 的包进行负载平衡的开发服务器上
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]: @import ""~/Content/variables.less"";",Error,""
想法?
【问题讨论】:
-
你解决过这个问题吗?它现在发生在我身上,我在网上找不到任何东西。
-
我认为这是无点解析器中的错误,无法支持某些内容或其他内容。我最终从 dotLess 切换到 Bundles Transformer:bundletransformer.codeplex.com
标签: c# css asp.net-mvc-4 asp.net-optimization dotless