2013-01-16 24 views
27

Script Nazwa pliku:Plik skryptu pakietu nie jest renderowany.

jquery.transit.min.js 

Plik znajduje się w folderze Scripts,

bundles.Add(new ScriptBundle("~/bundles/jquery") 
     .Include("~/Scripts/jquery-{version}.js")); 

bundles.Add(new ScriptBundle("~/bundles/jqueryui") 
     .Include("~/Scripts/jquery-ui-{version}.js")); 

bundles.Add(new ScriptBundle("~/bundles/jqueryval") 
     .Include("~/Scripts/jquery.unobtrusive*", "~/Scripts/jquery.validate*")); 

bundles.Add(new ScriptBundle("~/bundles/jtransit") 
     .Include("~/Scripts/jquery.transit*")); 

w moim View,

@Scripts.Render("~/bundles/jquery","~/bundles/jtransit") 
@Scripts.Render("~/bundles/jqueryui") 
@Scripts.Render("~/bundles/jqueryval") 

Przedstawiane HTML

<script src="/Scripts/jquery-1.8.3.js"></script> 
<script src="/Scripts/jquery-ui-1.9.2.js"></script> 
<script src="/Scripts/jquery.unobtrusive-ajax.js"></script> 
<script src="/Scripts/jquery.validate.js"></script> 
<script src="/Scripts/jquery.validate.unobtrusive.js"></script> 

jquery.transit.min.js nie zostanie renderowany. czego mi brakuje?

Odpowiedz

47

Myślę, że będzie tak, ponieważ masz tylko wersję .min pliku.

Z danych wyjściowych widzę, że uruchamiasz wersję debugowania swojej witryny . Domyślam się, że taki bundler szuka niezminijalowanego pliku.

Jeśli miałbyś wykonać kompilację Release, to byłaby ona pakowana w OK.

Proponuję uzyskać nieminurowaną wersję pliku tranzytowego i włącznie z tym w folderze Skrypty. W przeciwnym razie wystarczy wykonać kopię wersji minified, ale bez nazwy .min w nazwie pliku.

+0

Dobry połów! Dzięki – Eon

+1

nie można uwierzyć, że ASP.NET używa tej sztuczki. Brak błędu, po prostu nie działaj w milczeniu !! –

+0

Yup, plik min dostał mnie ... co za podstępna mała sztuczka. – afreeland

15

Począwszy od MVC4, każda zminimalizowana wersja plików JavaScript lub plików CSS jest zignorowana w trybie debugowania. Jak sugeruje NGM, trzeba zmienić nazwę pliku z,

jquery.transit.min.js 

się,

jquery.transit.js 

Alternatywnie, można zmodyfikował bundles.IgnoreList aby umożliwić pliki zminimalizowane mają być świadczone, jak pokazano here.

6

Musiałem to zrobić w Application_Start:

BundleTable.EnableOptimizations = true; 
-1

i upewnij się, że nie używasz IE 8. Bundling powiodło się dla mnie w tej przeglądarce, ale działa dobrze w Chrome lub Firefox.

+0

pakiety są tworzone po stronie serwera, więc przeglądarka nie powinna sprawiać różnicy – trigras

0

W moim przypadku Visual Studio 2013 po prostu myślał, że brakuje dołączania plików CSS, pokazał żółty znak zapytania nad nazwą pliku w Eksploratorze rozwiązań.

Po prostu kliknij dwukrotnie wszystkie te rzekomo brakujące plików i Visual Studio je znajdzie, żółty pytanie oznacza odrzucenie i łączenie zaczyna działać ponownie jak urok.

2

W moim przypadku próbowałem użyć pakietu skryptów i pakietu stylów o tej samej nazwie.

BundleConfig.cs:

bundles.Add(new ScriptBundle("~/bundles/custom") 
    .Include("~/Scripts/custom.js")); 

bundles.Add(new StyleBundle("~/bundles/custom") 
    .Include("~/CSS/custom.css")); 

_Layout.cshtml:

@Scripts.Render("~/bundles/custom") 
@Styles.Render("~/bundles/custom") 

To nie działa. Ostatni pakiet dodany w konfiguracji przetrwa, a @Scripts.Render("~/bundles/custom") po prostu wyrenderuje pustą linię.

Używam MVC 5.2.3.