Групаванне з MVC4 не працуе пасля таго, як я публікую ў блакіту

Прывітанне Я спрабую звязаць мае сцэнары для майго прыкладання. Мой адладкі працуе і калі я публікую з Web.debug кожная рэч працуе выдатна. Але калі я публікую з Web.releas мае сцэнарыі не загружаюцца. Усё працуе лакальна ён спыняецца толькі тады, калі я публікую ў Azure ад VS2012. Вось як я ствараю свае звязкі.

namespace BAT.App_Start
{
  public class BundleConfig
  {
    public static void RegisterBundles(BundleCollection bundles)
    {
        //BundleTable.EnableOptimizations = true;

        bundles.Add(new ScriptBundle("~/Content/MasterCss")
                .Include("~/Content/bootstrap.css")
                .Include("~/Content/bootstrap-responsive.css")
                .Include("~/Content/CSS/site.css"));

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

        bundles.Add(new ScriptBundle("~/Scripts/Validation")
                .Include("~/Scripts/jquery.validate.js")
                .Include("~/Scripts/jquery.validate.unobtrusive.js"));
        }
    }
}

ААН каментуюцца лінія ламае адладкавую зборку

Гэта мой макет, у якім я называю пучкі

@using System.Web.Optimization
<!DOCTYPE HTML>

<head>
    <meta charset="utf-8" />
    <title>@ViewBag.Title Business Analysis Tool </title>

    @Styles.Render("~/Content/MasterCss")
</head>

<body>
    <div class="container-fluid">
        <div class="row-fluid"> @RenderPage("~/Views/Shared/_Header.cshtml") </div>
        <div class="row-fluid"> @RenderBody() </div>
        <div class="row-fluid"> @RenderPage("~/Views/Shared/_Footer.cshtml") </div>
    </div>
    @Scripts.Render("~/Scripts/MasterScripts")    
    @RenderSection("scriptholder", false)
</body>
</html>

Гэта мой Release.Config

<?xml version="1.0"?>
     
    
        
    
    

Here is a link to the error when I check the bundled script with CTRL+U on the page http://bat.azurewebsites.net/Content/MasterCss?v=htASNz4hgFFA40tt0CVZdpwQudN8ZW4429UjRQZQJms1

Здаецца, што-то рабіць з минификацией. Я ішоў некаторыя падручнікі і чытаць іншыя пасты тут, але іх вырашэння arn't працуе для мяне

11
Я бачу тую ж праблему таксама. Калі я публікую профіль адладкі, не звязвае і працуе. Калі я публікую профіль выпуску, падобна на jQuery скрыптоў у мяне ёсць на маёй старонцы не больш працаваць.
дададзена аўтар Tim Cochran, крыніца
Прывітанне, няма, я havn't вёз яшчэ з ім. Для таго, каб проста атрымаць нешта працаваць, я выкарыстаў адладкавую зборку для публікацыі Azure. Гэта працуе для мяне, таму што ў мяне няма шмат сцэнарыяў, але я б вельмі хацеў, каб атрымаць камплектацыі працуе
дададзена аўтар Jeff Finn, крыніца
Прывітанне Джэф. Я, здаецца, у такой жа сітуацыі. Вы атрымалі якія-небудзь водгукі на гэты конт?
дададзена аўтар Ronald, крыніца
Добра, я дам вам ведаць, калі я прыдумляю нешта
дададзена аўтар Ronald, крыніца

9 адказы

Невялікія памылкі забіць мяне, я схеме пакетавання майго CSS у якасці сцэнара пачкі ня стыль расслаення.

Я зрабіў шмат, каб паспрабаваць выправіць гэтую сістэму кантролю версій, уключаючы ўстаноўку і канфігурацыі зборку. Мой праект пайшоў ад таго створана, каб выкарыстоўваць мярзотнік у TFS і ўсё.

5
дададзена
Гэтаксама......
дададзена аўтар Idrees, крыніца

вельмі проста выправіць для гэтага:

У мяне было наступнае:

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

я таксама меў тэчку ў маім рашэнні па адрасе:

/Content/Css

Гэта была праблема, stylebundle мела такое ж імя, як тэчка ў маім рашэнні.

Пераназваны stylebundle да:

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

і (памятаеце), каб змяніць, дзе вы referrence яго, _Layout.cshmtl

Такім чынам, каб зрабіць гэта ясна, калі ваш stylebundle імя такое ж, як фактычнае тэчку ў вашым рашэнні, то вы збіраецеся атрымаць гэтае пытанне. Проста назваць гэта нешта іншае.

5
дададзена
Аналагічная праблема. Там ёсць Scirpts тэчкі/дадатак і ёсць расслаенне, пэўны ў BundleConfig: ~/джгуты/дадатак. Мой сцэнар быў размешчаны ў тэчцы прыкладання. Пасля перайменавання ~/пакетаў/прыкладання ў BundleConfig.cs, у ~/джгуты/theapp ён працаваў.
дададзена аўтар yonexbat, крыніца

У BundleConfig.cs ў мяне было наступнае:

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

Я на самой справе на самай справе было выкарыстоўваць:

bundles.Add(new StyleBundle("~/Styles/css").Include(
            "~/Content/css/bootstrap.css",
            "~/Content/css/bootstrap-responsive.css",
            "~/Content/css/site.css"));

Я таксама павінен быў абнавіць спасылку на мой CSS Style вузельчык у _Layout.cshtml

@Styles.Render("~/Styles/css")

I found this answer here: http://thebeardeveloper.blogspot.com.au/2013/02/403-forbidden-for-css-bundles-in-asp.html

4
дададзена
Гэта быў адказ, які дапамог мне ў маім выпадку.
дададзена аўтар Rolando Retana, крыніца

У мяне была такая ж праблема, але ні адзін з вышэйпералічаных спосабаў не працуе для мяне.

Праблема заключаецца ў тым, што я схеме пакетавання, як гэта:

@Styles.Render("~/Content/css")

bundles.Add(new StyleBundle("~/Content/css").Include(
    "~/Content/bootstrap.css",
    "~/Content/justified-nav.css",
    "~/Content/site.css"));

Але, ~/Content/CSS таксама каталог - які зламаў пры разгортванні Azure. Я выправіў гэта, змяніўшы ~/Content/CSS у ~/Content/mastercss ў абодвух месцах

2
дададзена

I had a similar problem when publishing to Azure. The error was actually telling me that the jQuery file was bad formatted. ==> minified file that is.

Іншыя сцэнары не ўдалося, таму што jQuery ня быў ідэнтыфікаваны.

Я выкарыстоўваю jQuery 2.0.0 (ад NuGet). Пасля абнаўлення да 2.0.2 сёння (ад NuGet) я змог апублікаваць паспяховым у Azure пад канфігурацыяй Release.

Не ўпэўнены, калі гэта звязана з вашай канкрэтнай праблемы, але вырашыць маю.

2
дададзена
Выбачайце за затрымку ў спробе гэта, але гэта не працуе для мяне. Але дзякуй за адказ
дададзена аўтар Jeff Finn, крыніца

Давайце рабіць некаторыя сур'ёзныя рыць. Сёння я пачаў fiddeling вакол з Azure і хутка пабег у такую ​​ж праблему.

расслаенне стыль быў вызначаны наступным чынам:

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

Але ні CSS ня быць аказаны. Пасля таго, як амаль адкрываючы другое пытанне, я зразумеў, што файл bootstrap.superhero.css быў неактыўны у аглядальніку рашэнняў. Што працуе лакальна ў Visual Studio, трываў няўдачу ў блакіту, таму што файл яшчэ не быў рэалізаваны ў праекце.

Tl;dr: Right-click the CSS file and then "Include in project"

1
дададзена

У маім выпадку, віртуальны шлях маёй пачкі ўтрымлівае . знакаў. Нешта накшталт:

bundles.Add(new ScriptBundle("~/bundles/jquery.loadTemplate").Include(
            "~/Scripts/jquery.loadTemplate/*.js");

Я змяніў пункту злучка:

bundles.Add(new ScriptBundle("~/bundles/jquery-loadTemplate").Include(
            "~/Scripts/jquery-loadTemplate/*.js");

І ўсё працуе як шарм.

Я да гэтага часу не ведаю, чаму ён працаваў на маёй лакальнай машыне, а не на Блакітным ...

0
дададзена

Як адзін з адказаў згаданых, я змагаўся гэта некалькі гадзін, мая праблема была таксама, што ў мяне была тэчка з назвай сцэнары, таму я змяніў назву сцэнарыя з (гэта з майго пункту гледжання індэкса)

@Scripts.Render("~/Scripts/CircleStats") //this is also a folder in my project, which I think is the problem for azure

у

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

І гэта працуе, спадзяюся, гэта дапаможа камусьці

https://forums.asp.net/ т/1810635.aspx? 403 + Access + адмоўлена + пры + з дапамогай + пакетуе

0
дададзена

У маім выпадку адсутнасці табліцы стыляў, праблема не з-за капрызы публікацыі ў блакіт, збоі падчас минификации або канфліктуючых віртуальных і рэальных шляхоў.

Гэта было звязана з рознымі паводзінаў BundleCollection.Add (Bundle) паміж Debug і Release .

Калі вам атрымаецца зрабіць наступнае (напрыклад, таму што вы выкарыстоўваеце Дюрандаль ад NuGet і мець некалькі BundleConfig ініцыялізуецца па WebActivator, і вы на самой справе не пісаць ні адзін з іх сам)

bundles.Add(new StyleBundle("/foo").Include("/a.css")); 
bundles.Add(new StyleBundle("/foo").Include("/b.css"));

У прынцыпе, калі пучкі не памяншаць, гэта працуе: вы атрымліваеце элементы вашай старонкі Razor як для /foo/a.css і /foo/b.css .

Але калі минификация з'яўляецца займаецца, то b.css ня робіць яго ў выніку паменшанай рэсурсу. (Або a.css замяніць ... Я не звяртаў увагі ... проста спрабуе прымусіць яго працаваць).

Вы можаце абыйсці гэта, разумеючы парадак загрузкі і выкарыстання:

bundles.Add(new StyleBundle("/foo").Include("/a.css")); 
bundles.Add(bundles.GetBundleFor("/foo").Include("/b.css"));

... або з выкарыстаннем іншага імя шляху (калі гэта сапраўды ваш намер), або ўдакладніць стратэгію пакетірованія ініцыялізацыі (які патэнцыйна можа парушыць абнаўлення NuGet).

Калі толькі дурныя дакументацыя »для System.Web.Optimization класы фактычна папрацаваў ўказаць паводзіны пры даданні некалькіх пучкоў з аднаго віртуальнага шляху, мы не павінны быць з гэтай дыскусіі.

0
дададзена