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

时间:2016-03-21 12:46:29

标签: styles umbraco publish bundles optimus

我有一个在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中有一个小错误(之前我已经检查过,因此不是主要问题)。 在我的&#34; bundles.Add(新的StyleBundle(&#34;〜/ bundles / custom / css&#34;)&#34;我有错路径,对我而言应该是&#34;〜/ bundles /相反。而所有这些的组合,使它工作!

1 个答案:

答案 0 :(得分: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包。如果你需要我,我可以详细说明,但是那里有大量的例子和文档。