ResolveBundleUrl未解析所有文件

本文关键字:文件 ResolveBundleUrl | 更新日期: 2023-09-27 18:27:22

我是MVC的新手,所以我想开始一个新项目,并尝试MVC4中的一些新功能。我的Content目录中有两个css文件,normalise_minisite.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();
}

这现在起作用了。我的想法是,两条线应该共存,没有任何问题。我想这是故意的,但设计不好吗?

ResolveBundleUrl未解析所有文件

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

http://forums.asp.net/t/1776599.aspx/1?MVC+4+0+捆绑+最小化+非工作+

更新:

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

注意:EnableDefaultBundles已从Opmization的1.0.0 RTM版本中删除,您仍然可以通过设置自己的DynamicFolderBundles来获得等效的功能。但总的来说,这可能会导致问题(通常在大容量包含*.js时,文件中会有未捕获的depedency),因此我们转向了显式捆绑包设置,而不是EnableDefaultBundles。

对于最新的最佳文档/教程:Codeplex Documentation