2013-04-30 12 views
5

Uaktualniłem projekt z asp.net 3.5 do 4.5, aby korzystać z pakowania skryptów i minimalizowania javascript. Teraz wszystko działa, a wszystkie skrypty pojawiają się w pakiecie, który zdefiniowałem, ale nie są "spakowane" razem w jednym skrypcie i nie są zminimalizowane.asp.net 4.5 pakunki skryptowe ani pakowanie ani minimalizowanie

Herezje co mam ...

default.aspx zawiera to:

<asp:ScriptManager 
ID="scriptmanager" 
LoadScriptsBeforeUI="false" 
runat="server" 
    ScriptMode="Release" 
    EnableScriptLocalization="false" 
> 
    <Scripts> 
     <%--Framework Scripts--%> 
     <asp:ScriptReference Path="~/bundles/MyBundle" ScriptMode="Release"/> 
     <%--Site Scripts--%> 
    </Scripts> 
</asp:ScriptManager> 

Application_Start w Global.asax:

BundleTable.EnableOptimizations = true; 
BundleConfig.RegisterBundles(BundleTable.Bundles); 

BundleConfig.cs:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.Optimization; 

namespace MyNameSpace 
{ 
    public class BundleConfig 
    { 
     // For more information on Bundling, visit http://go.microsoft.com/fwlink/?LinkId=254726 
     public static void RegisterBundles(BundleCollection bundles) 
     { 
      bundles.Add(new ScriptBundle("~/bundles/MyBundle").Include(
       "~/Scripts/WebForms/WebForms.js", 
       "~/Scripts/WebForms/MSAjax/MicrosoftAjax.js", 
       "~/Scripts/WebForms/MSAjax/MicrosoftAjaxWebForms.js", 
       "~/Scripts/WebForms/TreeView.js", 
       "~/Scripts/WebForms/Focus.js", 
       "~/Scripts/WebForms/MenuStandards.js")); 

     } 
    } 
} 

Nawet się okazało wyłącza debugowanie w web.config, mimo że próbuję wymusić tryb wydania w managerze skryptów, jak również odwołanie do skryptu.

<compilation debug="false" batch="true" targetFramework="4.5"> 

Wyjście jest jeszcze kilka odnośników:

<script src="/MyProj/WebResource.axd?d=pynGkmcFUV13He1Qd6_TZA6EiyQ1YRW47qIzscWLzWU7jP_7DjoC2XbU7kCBkgYcJdoeAwqaVpUMnbWRsvhdMw2&amp;t=634896541540000000" type="text/javascript"></script> 
<script src="/MyProj/ScriptResource.axd?d=zvkqIRNUspAvS1yKeFhMb4kS_IY-Q_9Yn_KOfmzKLnliETz8uip5T2BUr1JOPE4XV1bmnifY3Eg8vrX8bPLYT71P0Kf8DwEcoRw5fj2tqHdQSorRXVpasfsMXeJLHbT_alkHjf2wIrgxLzxYvocKIA2&amp;t=12e197aa" type="text/javascript"></script> 
<script src="/MyProj/ScriptResource.axd?d=NJmAwtEo3Ipnlaxl6CMhvpbyEkpQU7AWZ3ZOrSRn7cdqTBUwP_3lu0l46EnEFBAkBOoC5I7IpMnx8u7VKe4fESCWGvycDq7dTXHsUSTg-j9u4S2Poz38UkmBa7Ta1cXyZ9DcFfKo7RpgjmNNoFjlZgbsHJEPN_AnazProCOQuws1&amp;t=6119e399" type="text/javascript"></script> 
<script src="/MyProj/ScriptResource.axd?d=dwY9oWetJoJoVpgL6Zq8OPgCkw9mWNaQmhnwlbrOgCXqxXAsNin9JxaUjtv38gzHz78sozRMjuXYeM_GE0v4htSt6vWwOO4-gOCLfSt6rVOvxbpcCXCLN9jI7fWPkTL2Eq7a9kcN8S4MasueIxDV0rhf-htD32XuwA259deRSNs1&amp;t=6119e399" type="text/javascript"></script> 
<script src="/MyProj/WebResource.axd?d=JoBkLzP19aTuxbWOhHobYmKZKUo0k_GoCFbuT9i-BqZJQhy_7Dl0oCPSUy3hiGltbFyiUTxWBZD-5YWblJpSZg2&amp;t=634896541540000000" type="text/javascript"></script> 

Czego mi brakuje? Jak mogę uzyskać wszystkie skrypty w pakiecie, aby wyprowadzić tylko jedno odwołanie i zminimalizować kod?

Dzięki, J

+1

http://stackoverflow.com/questions/12018429/asp-net-bundling-minification-including-dynamicznie -ogenerated-javascipt Przeczytaj komentarze, które mogą być pomocne. – Gev

+0

jak rozwiązałeś ten problem – MonsterMMORPG

Odpowiedz

1

Nie wydaje się, że <asp:ScriptReference /> jest wyprowadzanie wiązki w ogóle. Odwołać zawiniątko z szablonu przy użyciu maszynki MVC tak:

@Scripts.Render("~/bundles/lib") 

co skutkuje wyjściem tak (zauważyć atrybut src zawiera oryginalną nazwę wiązki):

<script src="/bundles/lib?v=gGKSj7TFmjDTZAjdEzBrqOOu9aGB6i4Tq0mHfaLUk_c1"></script> 

Jeśli nie jesteś używając maszynki do golenia możesz spróbować bezpośrednio odwoływać się do klasy System.Web.Optimization.Scripts, aby wywołać metodę Render() i NIE używać <asp:ScriptReference />.

chodzi minifikacji, trzeba dodać minifikacji przekształcić do wiązki tak:

var myBundle = new ScriptBundle("~/bundles/MyBundle").Include(
       "~/Scripts/WebForms/WebForms.js", 
       "~/Scripts/WebForms/MSAjax/MicrosoftAjax.js", 
       "~/Scripts/WebForms/MSAjax/MicrosoftAjaxWebForms.js", 
       "~/Scripts/WebForms/TreeView.js", 
       "~/Scripts/WebForms/Focus.js", 
       "~/Scripts/WebForms/MenuStandards.js") 
myBundle.Transforms.Add(new JsMinify()); 
bundles.Add(myBundle); 
1

Korzystając Scripts.Render zamiast ScriptManager

<%: Scripts.Render("~/bundles/MyBundle") %> 

albo w kodzie za:

System.Web.Optimization.Scripts.Render("~/bundles/MyBundle") 
Powiązane problemy