ResolveBundleUrl无法解析所有文件?
我是MVC的新手,所以我想开始一个新项目并尝试MVC4中的一些新function。 我的Content
目录中有两个css文件, normalise_mini
和site.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(); }
这现在有效。 我的想法是两条线应该没有任何问题共存。 我想这是设计,但它是不好的设计?
其他人已经回答了这个问题:
http://forums.asp.net/t/1776599.aspx/1?MVC+4+0+Bundling+Minification+not+working+
更新:
有人担心链接可能不足以回答这个问题。 虽然我仍然相信访问此页面的人应该阅读链接的线程,但简短的回答是从Application_Start()中删除BundleTable.Bundles.RegisterTemplateBundles()行并将其替换为BundleTable.Bundles.EnableDefaultBundles()
注意:从1.0.0 RTM版本的Optmization中删除了EnableDefaultBundles,您仍然可以通过设置自己的DynamicFolderBundles获得相同的function。 但一般情况下,这可能会导致问题(通常在批量包含* .js时未捕获的文件中存在依赖关系),因此我们转向显式捆绑设置并远离EnableDefaultBundles。
有关最新的文档/教程: Codeplex文档