ASP.Net MVC JS / CSS捆绑在部署时不起作用

时间:2012-03-05 17:16:21

标签: asp.net-mvc-4 asp.net-optimization

我已经部署了一个用ASP.Net MVC 4编写的小型Web应用程序。我们正确设置了JS / CSS包,它们在本地工作正常。问题是当我部署到IIS 6服务器时,捆绑包似乎不起作用。 js / css没有下载,当我尝试转到脚本中的js链接时,我得到了404.

是否有人将MVC 4部署到IIS 6并且有此工作?

3 个答案:

答案 0 :(得分:3)

问题是我们是在为ASP.Net 2.0配置的默认网站下为ASP.Net 4.0配置的虚拟目录运行。

我们创建了一个新的网站并将其设置为asp.net 4.0,一切都运行良好。根据{{​​3}}上的这篇文章,无扩展名网址现在应该只适用于IIS 6的大多数实例。

答案 1 :(得分:2)

捆绑包通过无扩展名网址提供:

IIS 6不支持开箱即用的无扩展名网址。当遇到以/js/css结尾的网址时,它完全不知道它必须将此网址与aspnet_isapi.dll处理程序(ASP.NET)相关联。

您可以阅读Phil Haack的blog post,其中他解释了如何为ASP.NET MVC配置IIS 6以启用无扩展URL。它与ASP.NET MVC 3有关,但对于ASP.NET MVC 4则完全相同。

哦,您可以考虑升级到IIS 7.0+,默认情况下在集成管道模式下运行时具有此功能。

答案 2 :(得分:0)

我的问题出现在App_Start的BundleConfig.cs文件中。我的BindleConfig.cs文件之前看起来像是

  bundles.Add(new ScriptBundle("~/Scripts/ui-js").Include(
                                     "~/Scripts/ui-js/jquery.min.1.11.1.js"
                                     , "~/Scripts/ui-js/bootstrap.min.js"
                                     , "~/Scripts/ui-js/bootstrap-slider.js"
                                     , "~/Scripts/ui-js/bootstrap-lightbox.js"
                                     , "~/Scripts/ui-js/common-script.js"
                                     , "~/Scripts/ui-js/html5.js"
                                     , "~/Scripts/ui-js/jquery.colorbox.js"
                                     , "~/Scripts/ui-js/respond.src.js"
                                     , "~/Scripts/ui-js/angular.min.js"
                                     , "~/Scripts/ui-js/bootstrap.js"
                                     ,"~/Scripts/ui-js/jRate.min.js"
                                     , "~/Scripts/ui-js/jcrop.min.js"
                                     ));

我的布局页面有

@Scripts.Render("~/Scripts/ui-js")

谷歌搜索后,我找到了解决方案,因为您无法使用相同的文件夹结构新ScriptBundle()虚拟路径。

所以我改变了这个

bundles.Add(new ScriptBundle("~/Scripts/ppScript").Include(
                                     "~/Scripts/ui-js/jquery.min.1.11.1.js"
                                     , "~/Scripts/ui-js/bootstrap.min.js"
                                     , "~/Scripts/ui-js/bootstrap-slider.js"
                                     , "~/Scripts/ui-js/bootstrap-lightbox.js"
                                     , "~/Scripts/ui-js/common-script.js"
                                     , "~/Scripts/ui-js/html5.js"
                                     , "~/Scripts/ui-js/jquery.colorbox.js"
                                     , "~/Scripts/ui-js/respond.src.js"
                                     , "~/Scripts/ui-js/angular.min.js"
                                     , "~/Scripts/ui-js/bootstrap.js"
                                     ,"~/Scripts/ui-js/jRate.min.js"
                                     , "~/Scripts/ui-js/jcrop.min.js"
                                     ));

在我的布局页面中,我将其称为

@Scripts.Render("~/Scripts/uiScript")

注意:您还需要对CSS和modernizr包执行相同操作:)