1

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

当我发布我的网站时,找不到捆绑包。
加载资源失败:服务器响应状态为 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"。所有这一切的结合,使它工作!

4

1 回答 1

3

假设您使用的是 Umbraco 6 或 7,您可以遵循此处的要点:如何在 Umbraco 中使用 ASP.NET Bundling and Minifications

但是,您应该使用ApplicationEventHandler派生类,以便可以在启动时注册它们,而不是尝试创建自己的 Global.asax.cs 类(这是现在推荐使用 Umbraco 执行此类操作的方法):

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

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

于 2016-03-22T10:51:56.787 回答