Microsoft IIS caches all the style sheets that are placed inside the App_Themes
folder, remembering the ones that are used by the web site pages (by all pages,
not only the current one); the effect is easily visible looking at the HTML code
sent to the client, noting that are included CSS links that were not specified
for the page.
This behavior requires a strong attention on styles inheritance, but also can
make Internet Explorer versions prior to the 9 to overflow the maximum number of
style tags allowed: in these versions the maximum number of style tags is 32 and
all the following ones are ignored.
My personal advise is to use the App_Themes
folder only and
exclusively for themes and to use another one, for example Styles
,
for style sheets.
As anticipated, if the App_Themes
folder is needed, you have to pay
attention to styles inheritance, always resetting properties, for example:
.myStyle
{
top: 10px;
}
.myStyle
{
bottom: 100px;
}
The result will be:
.myStyle
{
top: 10px;
bottom: 100px;
}
To avoid top
inheritance from the cache, the included style
sheet has to be:
.myStyle
{
top: auto;
bottom: 100px;
}