发布 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 包。如果您需要,我可以详细说明,但是那里有很多示例和文档。
我有一个用 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 包。如果您需要,我可以详细说明,但是那里有很多示例和文档。