我已经部署了一个用ASP.Net MVC 4编写的小型Web应用程序。我们正确设置了JS / CSS包,它们在本地工作正常。问题是当我部署到IIS 6服务器时,捆绑包似乎不起作用。 js / css没有下载,当我尝试转到脚本中的js链接时,我得到了404.
是否有人将MVC 4部署到IIS 6并且有此工作?
答案 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包执行相同操作:)