我在这里找到了一些不同的问题,解释了如何确保在没有用户登录的情况下正确加载CSS:CSS not being applied on non authenticated ASP.NET page。
为什么这个问题只发生在开发环境中,而不是生产中?如果问题是web.config说未经过身份验证的用户无法访问css文件,那为什么它在生产中可以正常工作?似乎在web.config中应该阻止生产和开发中的访问。
答案 0 :(得分:2)
答案很简单。
在你的开发环境中,这是asp.net引擎,它提供所有内容,静态和动态。因此,授权规则适用于两者。
在您的产品中,iis将动态请求路由到asp.net页面处理程序,但是对静态内容的请求由iis处理。因此,授权不适用,因为asp.net不涉及对jpgs,csses和其他静态资产的请求。
如果您希望在环境之间使用统一的语义,则必须打开所有请求的所有托管模块,这是您的asp.net Web应用程序的设置。它通过asp.net路由所有请求,导致引擎为所有请求应用所有模块(包括url授权模块)。