Я только что перенес проект ASP.NET MVC 3 в MVC 4/.NET 4.0 и установил пакет NuGet Microsoft.AspNet.Web.Optimization
для поддержки связывания и минимизации CSS и JavaScript. У меня в значительной степени работает связывание/минимизация, проблема в том, что оно всегда включено. Несмотря на то, что приложение находится в режиме отладки, как настроено в Web.config, все включения JavaScript минимизированы. Как видно из приведенного ниже фрагмента XML, в Web.config включен режим отладки:
<system.web>
<compilation debug="true" targetFramework="4.0">
...
</compilation>
...
</system.web>
Выдержка из конфигурации моего пакета:
public class BundleConfig
{
public static void RegisterBundles(BundleCollection bundles)
{
...
bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
"~/Scripts/jquery-1.*",
"~/Scripts/jquery.form.js",
"~/Scripts/jquery.format.js"));
bundles.Add(new StyleBundle("~/Content/css").Include(
"~/Content/Site.css"));
...
}
}
Включения CSS/JavaScript отображаются в HTML, например:
<link href="/content/css" rel="stylesheet" type="text/css">
<script src="/bundles/jquery" type="text/javascript"></script>
Кто-нибудь знает, почему минификация включена в моем случае? Я в недоумении, что мне здесь не хватает. Для устранения неполадок я создал тестовое интернет-приложение ASP.NET MVC 4 и смог убедиться, что CSS/JavaScript не минимизируется в режиме отладки для этого проекта.
ИЗМЕНИТЬ:
В моем файле _Layout.cshtml я отображаю стили/скрипты следующим образом:
@Styles.Render("content/css")
@Scripts.Render("bundles/jquery")
Благодаря Хао я понял, что забыл добавить к именам пакетов префикс «~/».