2016-03-21 49 views
1

我有一個網站在Umbraco連接到Visual Studio 2012.當我啓動項目(F5)它看起來應該用CSS和jQuery。在這個項目中我們使用包。發佈Umbraco網站,捆綁不起作用

當我發佈我的網站時,找不到捆綁包。
加載資源失敗:服務器響應狀態爲404(未找到)http://mywebsite.local/bundles/styles」當我在控制檯(在瀏覽器上)查看時,可以找到文件夾包和文件樣式。但它是空的。
但是在本地網站上,樣式文件中有CSS。

我在做什麼錯?我的意思是,它是相同的代碼?這就像我的代碼中有一半正在消失。我也使用Optimus作爲Umbraco的包,但它似乎沒有任何區別。

這裏是我的BundleConfig:

public static void RegisterBundles(BundleCollection bundles) 
    { 
     bundles.Add(new StyleBundle("~/bundles/custom/css").Include(
      "~/css/MasterStyle.css", 
      "~/css/TopMenu.css", 
      "~/css/SmallImages.css", 
      "~/css/SideMenu.css", 
      "~/css/Footer.css", 
      "~/css/Support.css", 
      "~/css/Highlight.css")); 

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

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

     bundles.Add(new ScriptBundle("~/bundles/js").Include(
      "~/scripts/TopMenu.js", 
      "~/scripts/Master.js")); 


     LogHelper.Info<string>("Bundles Loaded"); 

     //Comment this out to control this setting via web.config compilation debug attribute 
     BundleTable.EnableOptimizations = true; 
    } 

我的Global.asax(我沒有寫這個,肯定不知道這是正確的)

<script runat="server"> 
void Application_Start() 
{ 
    BundleConfig.RegisterBundles(BundleTable.Bundles); 
} 

    </script> 

UPDATE: 檢查正確的標記答案,我通過遵循該教程解決了問題,並使用了答案中發佈的代碼。我還注意到我的bundle.config中有一個小錯誤(之前我已經檢查過,所以這不是主要問題)。 在我的「bundles.Add(新StyleBundle(」〜/ bundles/custom/css「)」我錯了路,對我來說它應該是「〜/ bundles/styles」而且所有這些的結合, !工作

+0

這是一個Web應用程序或網站項目?你如何「發佈」該網站?如果Web應用程序是您想要部署在項目中的所有文件? – wingyip

+0

這是一個網站項目。我正在使用Visual Studios發佈Web嚮導來發布它。 – MissAndersson

回答

2

假設你正在使用一把umbraco 6或7,你可以在這裏遵循的要點:How to use ASP.NET Bundling and Minifications in Umbraco

但是,你應該在啓動時使用ApplicationEventHandler派生類,這樣就可以進行註冊,而不是試圖創造你自己的Global.asax.cs類(這是現在使用Umbraco做這種事的推薦方式):

public class ArticleEventHandler : Umbraco.Core.ApplicationEventHandler 
{ 
    protected override void ApplicationStarted(UmbracoApplicationBase umbracoApplication, ApplicationContext applicationContext) 
    { 
     BundleConfig.RegisterBundles(BundleTable.Bundles); 
    } 
} 

Bundling的替代方案是使用與Umbraco捆綁在一起的ClientDependency包。如果你需要我,我可以詳細說明,但是在那裏有大量的例子和文檔。

+0

哦,我忘了提到這一點。我使用Umbraco 7. 我跟着它,但它給了我和以前一樣的結果。我也使用applicationEventhandler而不是創建一個新的global.asax.cs 謝謝你的信息。我會更多地考慮ClientDependency。 – MissAndersson

+0

我解決了!我更新了我的帖子,如果有人想知道我是如何做到的。 非常感謝你,羅伯特。 – MissAndersson