ResolveBundleUrl无法解决所有文件的问题?

11

我对MVC不熟悉,所以想开始一个新项目并尝试在MVC4中使用一些新功能。我的Content目录下有两个CSS文件:normalize_minisite.css。当我使用以下代码时:

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

只有我的site.css文件被加载了,而我的normalisation文件没有被加载。在我的应用程序启动文件中,我有以下代码:

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文件创建一个bundle吗(就像这个人所做的那样)?还是应该自动查找所有的CSS文件(我希望这是默认行为)。值得注意的是,我以Razor视图引擎为基础创建了一个空网站(实际上并不是空的:/)。

提前感谢。


更新

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

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();
}

现在这个代码可以工作了。我认为这两行代码应该能够共存而不会出现任何问题。我猜这是设计如此,但这是不好的设计吗?

2个回答

10

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

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

更新:

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


谢谢,这个解决方案确实有效。不过,这两个选项应该可以一起使用吧? - Stuart Blackler
很遗憾,我对 MVC 4 的了解不足以直接回答那个具体的问题。我的猜测是它应该可以,但可能是 MVC 4 中的一个错误。 - evasilchenko
仅仅链接到一个网页并不是一个好的答案。请在你的回答中总结所链接信息的要点。 - ahsteele

0
注意:EnableDefaultBundles已在Optimization的1.0.0 RTM版本中删除,您仍然可以通过设置自己的DynamicFolderBundles来获得等效功能。但是一般情况下,这可能会导致问题(通常存在未捕获的文件依赖项,当您批量包含*.js时),因此我们转向显式捆绑设置并远离EnableDefaultBundles。
有关最新文档/教程,请参见:Codeplex Documentation

我认为你应该在某个时候更新文档。大多数由微软人员撰写的文章已经过时了。 - LeftyX

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接