Я пытаюсь иметь файлы 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 не применяются, потому что после ссылки появляется ошибка 404 из IIS.
Так кажется, что что-то не так с комплектом. Как заставить это работать в режиме выпуска или как узнать, что именно происходит неправильно?