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"/>
リンクをたどると IIS から 404 エラーが発生するため、.less ファイルのルールは適用されません。
そのため、バンドルに問題があるようです。これをリリースモードで動作させるにはどうすればよいですか、または何が問題なのかを正確に知るにはどうすればよいですか?