捆绑的css链接收到404错误
我正在尝试捆绑在ASP.NET MVC 4中工作。我从为捆绑的CSS生成的链接中收到404错误。 我做了以下事情:
-
通过NuGet安装“Microsoft ASP.NET Web Optimization Framework”软件包(v4.0.20710.0)
-
在App_Start目录中创建了一个BundleConfig类,其中包含以下内容:
using System.Web.Optimization; namespace BsdAppTemplate.Web_Nancy.App_Start { public class BundleConfig { public static void RegisterBundles(BundleCollection bundles) { bundles.Add(new StyleBundle("~/bundles/styles/cvi").Include( "~/mainstyles.css" )); } } }
-
在站点根目录的Web.config中添加了以下内容:
...
-
将以下内容添加到我的MVC布局文件的head元素中:
@Styles.Render("~/bundles/styles/cvi")
-
将BundleConfig(“mainstyles.css”)中引用的CSS文件复制到我的Web项目的根目录中。
当我查看渲染文件的来源时,我可以看到链接显示为:
此链接在浏览时会生成404,或在Chrome的网络标签中查看页面请求。
我也在Web表单上尝试过等效,但是从添加时生成的链接中得到了相同的结果(404):
您似乎错过了通过在Application_Start
调用RegisterBundles
来Application_Start
配置的步骤:
protected void Application_Start() { ... BundleConfig.RegisterBundles(BundleTable.Bundles); ... }
通常在BundleConfig
类已经存在的情况下(作为项目模板的一部分或在安装期间由NuGet包创建),此调用也已存在 – 这就是许多教程隐含的原因。
您还应该知道BundleConfig
类用于分离关注点以及保持Application_Start
清洁。 在简单的情况下,没有什么可以阻止您直接在Application_Start
注册bundle:
protected void Application_Start() { ... BundleTable.Bundles.Add(new StyleBundle("~/bundles/styles/cvi").Include("~/mainstyles.css")); ... }
通过谷歌搜索结果发现了这个问题,但我的案例中的问题是Windows 2008在编译debug = false时需要在web.config
中使用它。
没有这个,它在Win7开发机上运行良好。
我有同样的问题,我的脚本包突然响应404.我的解决方案类似于我在这篇博文上找到的@fiat回答。
解决方案是在system.webServer
部分的modules部分中删除并添加BundleModule
。
我有同样的问题(在ASP.Net webform中),我在Global.asax中使用Ignore“bundles /”路由解决了我的问题:
routeCollection.Ignore("bundles/{*catch}");