2013-02-14 34 views
0

我在这里发现了一些不同的问题,解释如何确保CSS正常加载,而无需用户登录:CSS not being applied on non authenticated ASP.NET page为什么Forms Authentication不能阻止css在生产中加载?

为什么这个问题只发生在开发环境中,而不是在生产环境中?如果问题在于web.config表示未经身份验证的用户无法访问css文件,那么为什么它在生产环境中可以正常工作?看来在web.config中应该阻止生产和开发中的访问。

+1

我敢打赌别的是错的。它在生产中应该以同样的方式运作。这可能是一个缓存问题。 – 2013-02-14 16:14:13

+0

尽管我已经确认web.config没有对css和images文件夹进行身份验证排除,但是我只是通过本地添加的身份验证来解决开发中的问题,但登录页面在生产中绝对看起来不错。 – GendoIkari 2013-02-14 16:16:35

回答

2

答案很简单。

在你的开发环境中,这是一个服务于所有内容的静态和动态的asp.net引擎。因此,授权规则适用于两者。

在您的产品中,iis将动态请求路由到asp.net页面处理程序,但对静态内容的请求由iis处理。因此,授权不适用,因为asp.net不涉及对jpgs,csses和其他静态资产的请求。

如果您希望环境之间的统一语义,您必须打开所有请求的所有托管模块,这是您的asp.net Web应用程序的设置。它通过asp.net路由所有请求,导致引擎为所有请求应用所有模块(包括url授权模块)。

相关问题