Asp.net MVC+IIS7=CSS问题
我在Vista上有一个通过IIS7运行的网站。站点正在端口88上运行,因此应该呈现默认的/Home/Index视图 与所有其他视图一样,这也可以正常工作 然而,一个问题是居民。我的脚本路径指向/Scripts/[FILE],我的CSS路径指向/Content/[FILE]。我的假设是/Content或/Scripts文件夹将始终位于站点的根目录下,因为我无意在虚拟目录设置中运行此站点。无论何时呈现页面,它们都没有CSS或脚本!所以一切看起来都不稳定,脚本显然不起作用,所以很多视图也不起作用Asp.net MVC+IIS7=CSS问题,asp.net,asp.net-mvc,iis-7,Asp.net,Asp.net Mvc,Iis 7,我在Vista上有一个通过IIS7运行的网站。站点正在端口88上运行,因此应该呈现默认的/Home/Index视图 与所有其他视图一样,这也可以正常工作 然而,一个问题是居民。我的脚本路径指向/Scripts/[FILE],我的CSS路径指向/Content/[FILE]。我的假设是/Content或/Scripts文件夹将始终位于站点的根目录下,因为我无意在虚拟目录设置中运行此站点。无论何时呈现页面,它们都没有CSS或脚本!所以一切看起来都不稳定,脚本显然不起作用,所以很多视图也不起作用 这是
这是一个非常奇怪的问题,我确信这是由于我缺乏IIS7下托管内容的知识造成的。我很感激任何人能提供的帮助。非常感谢 问题出在我创建应用程序的方式上。根据,我需要选择经典的.NET应用程序池来解决我的问题。必须热爱进步 这不是Windows 2008上的修复程序。如果有人对如何解决这件事有任何想法,我们将不胜感激 详细问题: Windows2K8服务器,IIS7。打开管道并安装静态文件支持。MVC可以工作,但CSS不能呈现
见鬼了?我希望这条线索的延续传达出一种意愿,即确保这个问题不会让任何人掉下悬崖。在各种论坛上有很多关于在Vista上解决这个问题的文档,但我找不到任何关于2K8的类似文章。正如本文所指出的,我能够在Vista机器上解决这个问题。唉,类似的执行在2K8上未能解决问题 我已经验证了StaticFileHandler已经包含在web.config中。不过,运气不好 在这里,我的服务器端功能非常完美。所有MVC路线都像冠军一样工作。只是所有CSS和JS呈现都失败了。当浏览器直接指向CSS或JS文件时,生成的页面是ASP.NET 404,而不是传统的404错误页面 所以我进入了IIS7管理器和处理程序映射对话框。我添加了一个新的处理程序,该处理程序指定System.Web.StaticFileHandler类型,并将其扩展为*.CSS。然后我对*.JS、*.PNG和*.GIF文件重复了这一点。当我在浏览器中刷新站点时,所有内容都正确呈现。下面的屏幕截图演示了此过程 处理程序映射窗口: 资料来源: 添加新的托管处理程序 资料来源:
这解决了问题,现在我有一个功能完善的MVC应用程序托管在W2K中。该喝吉尼斯了 从“控制面板”转到打开或关闭Windows功能,然后检查IIS子节点中的静态内容。问题不在于授权/身份验证,而在于现在管理IIS的模块。 在system.webServer内部,您应该将runAllManagedModulesForAllRequests设置为false,这样您就可以显示所有图像/css,而不会出现身份验证问题 在ASP.NET网站中,runAllManagedModulesForAllRequests的值以前必须设置为true以支持路由。但是,使用Service Pack更新IIS 7后,在使用ASP.NET路由时,runAllManagedModulesForAllRequests的值可以设置为false或忽略 参考文献 注意:不要忘记将以下行添加到我的web.config文件的AppSettings部分: