我正在尝试在我的web项目中使用LESS文件,并将MVC 4捆绑功能调用到dotLess库中以将LESS转换为CSS,然后缩小结果并将其提供给浏览器.
我在ASP.NET站点上找到了一个示例(在LESS,CoffeeScript,SCSS,Sass Bundling标题下).这给了我一个LessTransform看起来像这样的类:
public class LessTransform : IBundleTransform
{
public void Process(BundleContext context, BundleResponse response)
{
response.Content = dotless.Core.Less.Parse(response.Content);
response.ContentType = "text/css";
}
}
Run Code Online (Sandbox Code Playgroud)
我BundleConfig班上的这一行:
bundles.Add(new Bundle(
"~/Content/lessTest",
new LessTransform(),
new CssMinify()).Include("~/Content/less/test.less"));
Run Code Online (Sandbox Code Playgroud)
最后我在_Layout.cshtml中有以下行<head>:
@Styles.Render("~/Content/lessTest")
Run Code Online (Sandbox Code Playgroud)
如果我将站点设置为调试模式,则会将其呈现给浏览器:
<link href="/Content/less/test.less" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)
应用.less文件中的规则,并在该链接后显示LESS已正确转换为CSS.
但是,如果我将网站置于发布模式,则会显示出来:
<link href="/Content/less?v=lEs-HID6XUz3s2qkJ35Lvnwwq677wTaIiry6fuX8gz01" rel="stylesheet"/>
Run Code Online (Sandbox Code Playgroud)
无法应用.less文件中的规则,因为在链接后出现IIS的404错误.
所以捆绑似乎出了问题.如何让它在发布模式下工作,或者如何找出确切的错误?