我在" ASP.NET MVC 5"中有一个项目。并使用" less"对于文件" bootstrap",请使用以下库:
http://www.nuget.org/packages/BundleTransformer.Core/ http://www.nuget.org/packages/BundleTransformer.Less/ http://www.nuget.org/packages/JavaScriptEngineSwitcher.Core/ http://www.nuget.org/packages/JavaScriptEngineSwitcher.Msie/ http://www.nuget.org/packages/MsieJavaScriptEngine/
在我的BundleConfig.css中我有这个:
BundleTable.EnableOptimizations = false;
bundles.UseCdn = true;
CssTransformer cssTransformer = new CssTransformer();
JsTransformer jsTransformer = new JsTransformer();
NullOrderer nullOrderer = new NullOrderer();
Bundle cssBundle = new CustomStyleBundle("~/bundles/css");
cssBundle.Include("~/Content/bootstrap/bootstrap.less");
cssBundle.Include("~/Content/font-awesome.css");
cssBundle.Include("~/Content/site.less");
cssBundle.Transforms.Add(cssTransformer);
cssBundle.Orderer = nullOrderer;
bundles.Add(cssBundle);
在我的环境中工作正常,如果我使用IIS工作正常,但当我在" Windows Azure"因为"较少"文件出现此错误:
HTTP/1.1 500 Internal Server Error
Content-Length: 75
Content-Type: text/html
Server: Microsoft-IIS/8.0
X-Powered-By: ASP.NET
Date: Wed, 21 May 2014 11:56:01 GMT
The page cannot be displayed because an internal server error has occurred.
只有文件较少,其他文件如css o js return rigth
(我认为我有另一个问题,它没有显示错误,但这是另一个问题)。 Web.config错误:
<system.web>
<customErrors mode="Off">
</customErrors>
修改
在像this template 这样的web.config中配置较少的配置<bundleTransformer xmlns="http://tempuri.org/BundleTransformer.Configuration.xsd">
<less>
<jsEngine name="MsieJsEngine" />
</less>
<core>
<css>
<minifiers>
<add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" />
</minifiers>
<translators>
<add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" />
<add name="LessTranslator" type="BundleTransformer.Less.Translators.LessTranslator, BundleTransformer.Less" /></translators>
</css>
<js>
<minifiers>
<add name="NullMinifier" type="BundleTransformer.Core.Minifiers.NullMinifier, BundleTransformer.Core" />
</minifiers>
<translators>
<add name="NullTranslator" type="BundleTransformer.Core.Translators.NullTranslator, BundleTransformer.Core" enabled="false" />
</translators>
</js>
</core>
</bundleTransformer>
<jsEngineSwitcher xmlns="http://tempuri.org/JavaScriptEngineSwitcher.Configuration.xsd">
<core>
<engines>
<add name="MsieJsEngine" type="JavaScriptEngineSwitcher.Msie.MsieJsEngine, JavaScriptEngineSwitcher.Msie" />
</engines>
</core>
</jsEngineSwitcher>
答案 0 :(得分:3)
从代码中删除以下行:
cssBundle.Transforms.Add(cssTransformer);
此行是多余的,在使用CustomStyleBundle
类时可能会导致错误。
答案 1 :(得分:0)
BundleTransformer仅在捆绑时有效。换句话说,* .less文件永远不会被客户端实际使用,而是转换为CSS,然后在实际发送之前进行组合和缩小。直接请求* .less文件将无法工作,除非IIS有一个mime类型来处理它,但即使设置它也不能真正帮助你,因为IIS通常不会提供此文件。