2013-02-19 9 views
17

Niedawno moja lokalna kopia projektu całkowicie straciła swój styl. Zajęło mi to trochę czasu, ponieważ większość stylizacji została wykonana w jednym pliku, a reszta była drobnymi rzeczami, takimi jak Kendo i jQuery UI.Pakiet stylów ASP.Net MVC nie zawierający większości plików

Inne, drobne elementy nie zostały dodane do strony. Myślałem, że style zostały zmodyfikowane przez innego programistę (przez jakiś czas nie dotykały tego projektu), który testował tylko interfejs Web API, a nie interfejs użytkownika, więc mógł go zniszczyć i nigdy nie wiadomo, ale udało mi się znaleźć problem: w pakiecie był tylko plik site.css i żaden inny. Próbowałem nawet przestawić kolejność plików CSS zawartych w pakiecie i to TYLKO zawierało site.css.

Przebudowałem projekt, wyczyściłem pamięć podręczną itp., Więc zdecydowanie widziałem zmiany. Pamiętam aktualizowanie niektórych pakietów NuGet lub pakietów VS lub czegoś ostatnio - być może nawet pakietu MVC?

Moje pytanie brzmi: Czy coś się zmieniło, że tak się stało? Co to powoduje?

EDIT: Kod z BundleConfig.cs:

public static void RegisterBundles(BundleCollection bundles) 
{ 
    bundles.Add(new StyleBundle("~/Content/css").Include(
      "~/Content/site.css", 
      "~/Content/themes/kendo/kendo.common.min.css", 
      "~/Content/themes/kendo/kendo.default.min.css", 
      "~/Content/themes/base/minified/jquery.ui.core.min.css", 
      "~/Content/themes/base/minified/jquery.ui.resizable.min.css", 
      "~/Content/themes/base/minified/jquery.ui.selectable.min.css", 
      "~/Content/themes/base/minified/jquery.ui.accordion.min.css", 
      "~/Content/themes/base/minified/jquery.ui.autocomplete.min.css", 
      "~/Content/themes/base/minified/jquery.ui.button.min.css", 
      "~/Content/themes/base/minified/jquery.ui.dialog.min.css", 
      "~/Content/themes/base/minified/jquery.ui.slider.min.css", 
      "~/Content/themes/base/minified/jquery.ui.tabs.min.css", 
      "~/Content/themes/base/minified/jquery.ui.datepicker.min.css", 
      "~/Content/themes/base/minified/jquery.ui.progressbar.min.css", 
      "~/Content/themes/base/minified/jquery.ui.theme.min.css")); 
} 

Kod z _Layout.cshtml:

@Styles.Render("~/Content/themes/base/css", "~/Content/css") 
+0

Proszę, możesz opublikować swój kod pakietowy. – ngm

+0

Zaktualizowano kodem, @ngm. – vbullinger

+0

Teraz to nie jest interesujące: ponad 1000 wyświetleń i zero punktów za pytanie ... – vbullinger

Odpowiedz

54

Domyślnie pliki o nazwach kończących się na ".min.css" zostaną włączone tylko w wersjach wydania.

Zalecana konfiguracja pakiet jest tylko to non-minified .css i .js pliki, następnie wersja .min zostanie automatycznie wybrany (jeśli istnieje) w wydaniu buduje, tj <compilation debug="false"> w Web.config.

Możesz kontrolować to zachowanie, czyszcząc, a następnie dodając reguły ignorowania do BundleCollection.IgnoreList. Przykładem BundleConfig mógłby wyglądać następująco:

public static class BundleConfig 
{ 
    public static void RegisterBundles(BundleCollection bundles) 
    { 
     ConfigureIgnoreList(bundles.IgnoreList); 

     // Setup your bundles... 
    } 

    public static void ConfigureIgnoreList(IgnoreList ignoreList) 
    { 
     if (ignoreList == null) throw new ArgumentNullException("ignoreList"); 

     ignoreList.Clear(); // Clear the list, then add the new patterns. 

     ignoreList.Ignore("*.intellisense.js"); 
     ignoreList.Ignore("*-vsdoc.js"); 
     ignoreList.Ignore("*.debug.js", OptimizationMode.WhenEnabled); 
     // ignoreList.Ignore("*.min.js", OptimizationMode.WhenDisabled); 
     ignoreList.Ignore("*.min.css", OptimizationMode.WhenDisabled); 
    } 
} 

Można również jawnie włączyć/wyłączyć optymalizację poprzez ustawienie BundleTable.EnableOptimizations.

+4

Brzmi nieźle. Skończyliśmy tutaj. – vbullinger

Powiązane problemy