0

В проекте ASP.NET MVC я работаю над двумя ключами приложения по отношению к процессу связывания: AppKeys.ApplyMinifyingTransformation показывает, должны ли файлы .css и .js быть уменьшены и объединены, AppKeys.ApplyStaticFilesTransformations показывает, следует ли применять некоторые преобразования содержимого файла. Различные комбинации этих флагов должны использоваться на разных этапах. Вот упрощенная версия метода RegisterBundles:Как включить преобразование Bundle без объединения файлов?

public static void RegisterBundles(BundleCollection bundles) 
{ 
    BundleTable.EnableOptimizations = AppKeys.ApplyMinifyingTransformationAndBlockJs || 
      AppKeys.ApplyStaticFilesTransformations; 
    var lessStyles = new Bundle("~/Bundles/Styles/") 
     .IncludeDirectory("~/Path-to-css", "*.css", true); 
    var postProcessors = AppKeys.ApplyStaticFilesTransformations 
     ? new[] {new StaticFilesPostProcessor()} 
     : new IPostProcessor[] {}; 
    var transformer = AppKeys.ApplyMinifyingTransformationAndBlockJs 
     ? new StyleTransformer(new YuiCssMinifier(), postProcessors) 
     : new StyleTransformer(postProcessors); 
    transformer.CombineFilesBeforeMinification = AppKeys.ApplyMinifyingTransformationAndBlockJs; 

    lessStyles.Transforms.Add(transformer); 

    bundles.Add(lessStyles); 
} 

К сожалению, этот код не работает, как я хочу его. BundleTable.EnableOptimizations должен быть true для преобразования файла в работу, но в этом случае файлы всегда объединяются в один.

Есть ли способ явно указать, что я хочу, чтобы преобразования были включены, но файлы не следует комбинировать?

ответ

0

Пакетирование и Минимизация происходит в соответствии со значением атрибута debugcompilation элемента в Web.config.

<compilation debug="true" targetFramework="4.0"/> 

Имея это позволило делает файлы, как они есть, и когда debug="false" файлы архивируются и минимизированы.

Таким образом, удалить явные оптимизации, а именно удалить строку

BundleTable.EnableOptimizations = AppKeys.ApplyMinifyingTransformationAndBlockJs || 
     AppKeys.ApplyStaticFilesTransformations; 

И не забудьте изменить значение атрибута debugfalse при развертывании приложения в производстве.

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

+0

Извините, но это нисколько не помогает. Прежде всего, я считаю, что более прозрачным для этого параметра является один из многих ключей в разделе 'appSettings', просто из-за того, как написаны наши файлы преобразований. Во-вторых, независимо от того, где именно установлен этот параметр, он не изменяет поведение системы: с 'debug =" true "' Я не получаю ни преобразования, ни минимума, в противном случае я получаю их оба. Это не способ избежать объединения файлов в один, применяя необходимые преобразования. – AndreySarafanov