У меня есть следующий пакет, сконфигурированный в BundleConfig.cs:
bundles.Add(new StyleBundle("~/bundles/css").Include(
"~/assets/bootstrap/css/bootstrap.css",
"~/assets/css/global/all.css"));
и я ссылаюсь на него, используя следующее:
@Styles.Render("~/bundles/css")
Когда я работаю в режиме отладки (компиляция web.config debug="true"
), он работает так, как ожидалось, в том, что он отображает оба css файла как нормальные, т.е.
<link href="/assets/bootstrap/css/bootstrap.css" rel="stylesheet"/>
<link href="/assets/css/global/all.css" rel="stylesheet"/>
Однако, когда я устанавливаю debug="false"
, вышеприведенное поведение по-прежнему происходит в том, что оно распознает файлы, однако оно просто делает их нормальными.
Чтобы подтвердить, что соединение может работать, я включил оптимизацию в BundleConfig, т.е. BundleTable.EnableOptimizations = true;
Всякий раз, когда я делаю это, он связывает css и появляется как ожидается, т.е.:
<link href="/bundles/css?v=WBKHkZAJly7jUzHrVDT8SwfaQE-CA9dbOUQUlLKadNE1" rel="stylesheet"/>
EDIT:
Несколько человек упомянули, что добавление следующего кода в мой файл BundleConfig.cs приведет к следующему:
#if DEBUG
BundleTable.EnableOptimizations = false;
#else
BundleTable.EnableOptimizations = true;
#endif
Я понимаю и ценю этот ответ, однако, согласно документации, поведение пакета MVC по умолчанию заключается в том, чтобы связывать в режиме деблокирования, но не в режиме отладки. Я не понимаю, почему мне нужно добавить дополнительный код, чтобы он делал это, когда он уже делал это.
ИЗМЕНИТЬ 2
У меня есть признание. Оказывается, у меня появился файл web.config из папки Views, а не основной web.config. Я изменил настройку в главном web.config, и это отлично работает для меня. Я обвиняю ReSharper