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