我正在尝试在我的 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";
}
}
BundleConfig
我班上的这一行:
bundles.Add(new Bundle(
"~/Content/lessTest",
new LessTransform(),
new CssMinify()).Include("~/Content/less/test.less"));
最后,我的 _Layout.cshtml 中有以下行<head>
:
@Styles.Render("~/Content/lessTest")
如果我的站点处于调试模式,则会将其呈现给浏览器:
<link href="/Content/less/test.less" rel="stylesheet"/>
应用了 .less 文件中的规则,并且跟随该链接显示 LESS 已正确转换为 CSS。
但是,如果我将站点置于发布模式,则会呈现以下内容:
<link href="/Content/less?v=lEs-HID6XUz3s2qkJ35Lvnwwq677wTaIiry6fuX8gz01" rel="stylesheet"/>
.less 文件中的规则未应用,因为点击链接会从 IIS 中得到 404 错误。
因此,捆绑似乎出了点问题。我如何让它在发布模式下工作,或者我如何找出到底出了什么问题?