Виртуальный путь не используется в пакетах 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