2015-09-26 3 views
1

Прежде, чем я начну, позвольте мне сказать, что я знаю, что есть другие вопросы по поводу этих вопросов, которые имеют отличные ответы, но, пожалуйста, позвольте мне объяснить, как у меня разные.ASP.NET MVC 5 вложенные скрипты, не вызываемые в _Layout.cshtml

У меня есть 5 проект ASP.NET MVC, где у меня есть коллекция жгутов:

public class BundleConfig 
{ 
    // For more information on bundling, visit http://go.microsoft.com/fwlink/?LinkId=301862 
    public static void RegisterBundles(BundleCollection bundles) 
    { 
     bundles.Add(new ScriptBundle("~/bundles/jquery").Include(
        "~/Scripts/jquery.js")); 

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

     // Use the development version of Modernizr to develop with and learn from. Then, when you're 
     // ready for production, use the build tool at http://modernizr.com to pick only the tests you need. 
     bundles.Add(new ScriptBundle("~/bundles/modernizr").Include(
        "~/Scripts/modernizr-*")); 


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

     bundles.Add(new StyleBundle("~/Content/css").Include(
        "~/Content/bootstrap.css", 
        "~/Content/freelancer.css")); 

     // Plugin JavaScript 
     bundles.Add(new ScriptBundle("~/bundles/pluginjs").Include(
       "~/Scripts/cbpAnimatedHeader.js", 
       "~/Scripts/classie.js")); 

     //Custom Theme js 
     bundles.Add(new ScriptBundle("~/bundles/customthemejs").Include(
        "~/Scripts/freelancer.js")); 

     // Contact Form JavaScript 
     bundles.Add(new ScriptBundle("~/bundles/contactvalidation").Include(
        "~/Content/jqBootstrapValidation.js", 
        "~/Content/contact_me.js")); 
    } 

Они называются в _Layout.cshtml:

@Scripts.Render("~/bundles/customthemejs") 
    @Scripts.Render("~/bundles/jquery") 
    @Scripts.Render("~/bundles/contactvalidation") 
    @Scripts.Render("~/bundles/pluginjs") 
    @Scripts.Render("~/bundles/bootstrap") 
    @RenderSection("scripts", required: false) 
</body> 
</html> 

И в `global.asax:

protected void Application_Start() 
    { 
     AreaRegistration.RegisterAllAreas(); 
     FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); 
     RouteConfig.RegisterRoutes(RouteTable.Routes); 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 
    } 

Вот что я знаю до сих пор:

  1. Все StyleBundle «s называются и успешно вызываются таким образом я могу точно определить источник проблемы к чему-то внутри сценария, ссылающегося
  2. Сценарии называют также находятся в правильной папке т.е. ~/Scripts/.... так что я знайте, что это не проблема ссылок.
  3. скрипты работают, как я проверил их с помощью проекта Web Forms
  4. Я попытался ссылки пучков в head разделе _Layout.cshtml, но без изменения
  5. Dev инструменты в хроме и отладчик в VS показать сценарий это не запускать
  6. Мое единственное подозрение в том, что существует разрыв где-то между вызовом из _Layout.cshtml и расслоения в BundleConfig класса

Я пробовал другие решения, которые рекомендуют другие в Интернете, например, поиск синтаксических ошибок и т. д., но, насколько мне известно, их нет.

Чтобы сделать структуру сценариев очевидно, что я включил снимок экрана: enter image description here

Может кто-нибудь увидеть это в другом ракурсе, чем я, и увидеть, где я пошло не так?

+0

Какой сценарий не работает? возможно, это проблема с порядком написания скрипта? – Backs

+0

Вы назвали RegisterBundles в global.aspx? –

+0

Связки вызывается в global.asax. StyleBundles называются просто не пакетами сценариев – AnonDCX

ответ

1

Ваш код выглядит правильно, хотя вы ссылаетесь на Microsoft.Web.Optimization, приложение config может работать неправильно. Вы можете заставить ссылку, чтобы приложение использовало Web.Optimization. Внутри вашего _Layout.cshtml выше ваших пакетных данных, поместите следующее:

@using System.Web.Optimization 

Это должно правильно следить за соблюдением Web.Optimization.

Единственная другая часть, которая может быть неправильной, мы не можем видеть, это ваш Global.asax. Вам необходимо убедиться, что вы вызываете RegisterBundle.

BundleConfig.RegisterBundles(BundleTable.Bundles); 
+0

Я уже ссылаюсь на s.w.o и BundleConfig.RegisterBundle (BundleTable.Bundles); вызывается в global.asax – AnonDCX

+0

Да, но общий макет не всегда, он может быть запущен в ASP.net. Есть ли скрипт в макете для скриптов.render? – Greg