问题 ResolveBundleUrl无法解析所有文件?


我是MVC的新手,所以我想开始一个新项目并尝试MVC4中的一些新功能。我的两个css文件 Content 目录, normalise_mini 和 site.css。当我使用以下代码时:

<link href="@System.Web.Optimization.BundleTable.Bundles.ResolveBundleUrl("~/Content/css")" rel="stylesheet" type="text/css" />

它只需要我的 site.css 文件不是我的规范化文件。我的应用开始时有以下内容:

protected void Application_Start()
{

    // Remove all other view engines except razor:
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new RazorViewEngine());

    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);

    BundleTable.Bundles.RegisterTemplateBundles();
    BundleTable.Bundles.EnableDefaultBundles();
}

我是否需要为每个css文件创建一个包(如 这个 人在做什么?或者它应该只是自动找到所有的css文件(我希望这是默认行为)。值得注意的是,我开始将这个项目作为基于Razor视图引擎的空网站(实际上根本不是空的:/)

提前致谢


更新

根据发布的链接,我需要注释掉注册模板包的行。例如:

protected void Application_Start()
{

    // Remove all other view engines except razor:
    ViewEngines.Engines.Clear();
    ViewEngines.Engines.Add(new RazorViewEngine());

    AreaRegistration.RegisterAllAreas();

    RegisterGlobalFilters(GlobalFilters.Filters);
    RegisterRoutes(RouteTable.Routes);

    //BundleTable.Bundles.RegisterTemplateBundles();  // This is not needed
    BundleTable.Bundles.EnableDefaultBundles();
}

这现在有效。我的想法是两条线应该没有任何问题共存。我想这是设计,但它是不好的设计?


5062
2018-03-08 20:01


起源



答案:


其他人已经回答了这个问题:

http://forums.asp.net/t/1776599.aspx/1?MVC+4+0+Bundling+Minification+not+working+

更新:

有人担心链接可能不足以回答这个问题。虽然我仍然相信访问此页面的人应该阅读链接的线程,但简短的回答是从Application_Start()中删除BundleTable.Bundles.RegisterTemplateBundles()行并将其替换为BundleTable.Bundles.EnableDefaultBundles()


10
2018-03-08 20:09



谢谢解决方案确实有效。当然,这两个选项应该一起工作吗? - Stuart Blackler
不幸的是,我对MVC 4不够了解,无法回答这个问题。我的猜测是应该但它可能是MVC 4中的一个错误。 - evasilchenko
什么哎呀:)它现在作为一个魅力!谢谢 - S P
简单地链接到网页不是一个好的答案。请将链接的信息作为答案的一部分进行总结。 - ahsteele
@ahsteele完成并完成:) - evasilchenko


答案:


其他人已经回答了这个问题:

http://forums.asp.net/t/1776599.aspx/1?MVC+4+0+Bundling+Minification+not+working+

更新:

有人担心链接可能不足以回答这个问题。虽然我仍然相信访问此页面的人应该阅读链接的线程,但简短的回答是从Application_Start()中删除BundleTable.Bundles.RegisterTemplateBundles()行并将其替换为BundleTable.Bundles.EnableDefaultBundles()


10
2018-03-08 20:09



谢谢解决方案确实有效。当然,这两个选项应该一起工作吗? - Stuart Blackler
不幸的是,我对MVC 4不够了解,无法回答这个问题。我的猜测是应该但它可能是MVC 4中的一个错误。 - evasilchenko
什么哎呀:)它现在作为一个魅力!谢谢 - S P
简单地链接到网页不是一个好的答案。请将链接的信息作为答案的一部分进行总结。 - ahsteele
@ahsteele完成并完成:) - evasilchenko


注意:从1.0.0 RTM版本的Optmization中删除了EnableDefaultBundles,您仍然可以通过设置自己的DynamicFolderBundles获得相同的功能。但一般情况下,这可能会导致问题(通常在批量包含* .js时未捕获的文件中存在依赖关系),因此我们转向显式捆绑设置并远离EnableDefaultBundles。

有关最新的文档/教程: Codeplex文档


0
2017-08-29 19:02



我认为您应该在某个时候更新文档。 MS人员撰写的大部分文章都已过时。 - LeftyX