【问题标题】:Publishing Umbraco site, bundles doesn't work发布 Umbraco 站点,捆绑包不起作用
【发布时间】:2016-07-07 23:38:46
【问题描述】:

我有一个连接到 Visual Studio 2012 的 Umbraco 网站。当我启动项目 (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"。所有这一切的结合,使它工作!

【问题讨论】:

  • 这是一个网络应用程序还是一个网站项目?您如何“发布”该网站?如果 Web 应用程序是您想要部署的所有文件都包含在您的项目中?
  • 这是一个网站项目。我正在使用 Visual Studios 发布 Web 向导来发布它。

标签: styles umbraco publish bundles optimus


【解决方案1】:

假设您使用的是 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);
    }
}

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

【讨论】:

  • 哦,我忘了提。我正在使用 Umbraco 7。我跟着它,但它给了我和以前一样的结果。我还使用了 applicationEventhandler 而不是创建一个新的 global.asax.cs 谢谢你的信息。我将进一步研究 ClientDependency。
  • 我解决了!如果有人想知道我是如何做到的,我会更新我的帖子。非常感谢你,罗伯特。
猜你喜欢
  • 2016-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-23
相关资源
最近更新 更多