Я только что перенес проект ASP.NET MVC 3 в MVC 4/.NET 4.0 и установил пакет NuGet Microsoft.AspNet.Web.Optimization
, чтобы поддерживать связывание и минимизацию CSS и JavaScript. У меня довольно много работы по связыванию/минимизации, проблема в том, что она всегда включена. Несмотря на то, что приложение находится в режиме отладки, как указано в Web.config, все включенные JavaScript включены. Как видно из приведенного ниже фрагмента XML, режим debug включен в 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>
Есть ли у кого-нибудь подсказка, почему в моем случае включена функция minification? Я в недоумении относительно того, чего мне здесь не хватает. Чтобы устранить неполадки, я создал тестовое интернет-приложение ASP.NET MVC 4 и мог убедиться, что CSS/JavaScript не был включен в режим отладки для этого проекта.
EDIT:
В моем файле _Layout.cshtml я визуализую стили/скрипты следующим образом:
@Styles.Render("content/css")
@Scripts.Render("bundles/jquery")
Благодаря Хао, я понимаю, что я забыл приписать имена пакетов с ~ ~/".