Виртуальный путь не используется в пакетах ASP.NET

У меня есть следующий пакет в моем BundleConfig:

bundles.Add(new StyleBundle("~/Content/Basic/globalCss").Include("~/Content/Basic/global.css"));

Я использую следующее для визуализации пакета CSS:

@Styles.Render("~/Content/Basic/globalCss")

На моей локальной машине (среда отладки) CSS-файл включен / загружен по его абсолютному пути. У меня отключена компиляция / ложь для отладки, так что это имеет смысл. Когда я перемещаюсь в среду QA (компиляция включена /true), я вижу следующий виртуальный путь, включенный в страницу:

<link href="/Content/globalbasicCss?v=6i8x1Cxf8pXm5g9uxAk8-wcO02DFmeAgYLWpJk-3r_g1" rel="stylesheet">

Это был старый виртуальный путь, который у меня был ~/Content/globalbasicCss,

Почему мой пакет не использует новый виртуальный путь, который я указал ~/Content/Basic/globalCss? Это потому, что в CSS-файл, включенный в комплект, не было внесено никаких изменений?

2 ответа

Решение

Оказывается, мне нужно было внести изменения в фактические связанные CSS-файлы, чтобы обновить виртуальный путь этого пакета. Я не уверен, почему это так, и был бы признателен всем, кто лучше разбирается в комплектации ASP.NET и объяснил, почему это происходит именно так.

Это функция объединения и минификации. Ваш CSS-пакет минимизирован, и если у вас будет больше файлов, они будут объединены в один файл.

Это происходит, когда вы обычно строите в режиме релиза с настройкой web.config

<compilation debug="false">

Более подробная информация здесь - http://www.asp.net/mvc/overview/performance/bundling-and-minification

Другие вопросы по тегам