发布 Umbraco 站点,捆绑包不起作用

Publishing Umbraco site, bundles doesn't work

我有一个用 Umbraco 制作的网站,连接到 Visual Studio 2012。当我启动项目 (F5) 时,它看起来应该使用 CSS 和 jQuery。在这个项目中我们使用 bundle。

当我发布我的网站时,找不到捆绑包。
加载资源失败:服务器响应状态为 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>

更新: 检查正确标记的答案,我按照该教程解决了它并使用了答案中发布的代码。我还注意到我的 bundle.config 中有一个小错误(我之前检查过,所以这不是主要问题)。 在我的 "bundles.Add(new StyleBundle("~/bundles/custom/css")" 中,我有错误的路径,对我来说它应该是 "~/bundles/styles" 而不是。所有这一切的结合,让它发挥作用!

假设您使用的是 Umbraco 6 或 7,您可以按照此处的要点进行操作:How to use ASP.NET Bundling and Minifications in Umbraco

但是,您应该使用 ApplicationEventHandler 派生的 class,这样您就可以在启动时注册它们,而不是尝试创建自己的 Global.asax.cs class(这是现在推荐用 Umbraco 做这种事情的方法):

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

捆绑的替代方法是使用与 Umbraco 捆绑在一起的 ClientDependency 包。如果您需要,我可以详细说明,但是那里有很多示例和文档。