删除ASP.NET WebForms的“App_Themes”目录会导致应用程序池崩溃

时间:2012-06-22 20:02:10

标签: asp.net webforms application-pool app-themes

我最近开始研究一个大型的ASP.NET WebForms项目。

该项目使用App_Themes目录,其中包含大量无组织的CSS和图像资源。

我发现无论我是否想要它,主题目录中的每个CSS文件都会被加载,并且它们都按字母顺序加载。

我显然希望对CSS和前端资源有更多的控制和灵活性,我将它们全部移到一个单独的目录中,然后删除整个App_Themes文件夹。

这似乎只是移动资源的一个简单问题,但在部署到我们的生产服务器之后,系统很快变得不稳定,并且应用程序池一再崩溃。

恢复App_Themes目录使系统再次稳定,但这对我没有意义。 App_Themes文件夹,以及它可能具有的任何可能的依赖关系,看起来像一个奇怪的黑盒子,我无法弄清楚,似乎无法离开。

1 个答案:

答案 0 :(得分:3)

App_Themes是ASP.Net中的“特殊目录”之一。虽然它可能不是必需的(默认情况下你现在不会看到它们),但它们可能在配置(web.config),任何皮肤控件,页面等中引用 - 也许这就是应用程序正在进行的原因删除文件夹后不稳定(打破了对它的所有引用)。

检查此类引用 - 您可以(重新)从定义的主题移动css文件,这样您就可以从空白的平板开始,如果这是您想要的。除非您可以在应用程序中找到并删除所有对主题用法的引用,否则请避免修改目录结构。

App_Themes可以很强大。只需在web.config中进行一次更改

,即可轻松更改整个网站的外观(也称为“主题”)
<system.web>
    <!-- chage this value to "fall" in the Fall -->
    <pages theme="Summer" />
</system.web>

上面的“夏季”主题设置映射到App_Themes中的“Summer”子文件夹,其中包含Summer主题的样式表/皮肤。如果您有“Fall”主题,那么它将映射到App_Themes ...

中相同的命名子文件夹

参考:ASP.Net Themes/Skins

HTH