2006-07-18

Theme settings i web.config i kombination med förkompilerad ASP.Net

En lustig detalj med ASP.Net 2.0 och teman: om du förkompilerar en website så hårdlöds temanamnet från web.configs <pages theme="mytheme"/>, vilket bland annat har uppmärksammats av K. Scott Allen: Caveat With ASP.NET Precompilation and web.config Settings.

Det är inte direkt det beteende man förväntar sig. Hela poängen med web.config är väl att man lätt ska kunna konfigurera sin applikation efter deployment?

Vad mer är, om du publicerar en webapplikation i Visual Studio 2005 och väljer "Allow this precompiled site to be updatable" så förväntar du dig att temainställningen i web.config ska fungera trots förkompileringen, eller hur? Det antyder även Scott i sin artikel. Men icke! Inte heller här funkar det som man förväntar sig. Trots att alla aspx-filer går att ändra och kompileras dynamiskt så slår inte ändringar av temainställningen i web.config igenom i webbapplikationen.

Och här kommer hela poängen med det här inlägget: Om du publicerar en uppdateringsbar webbapplikation och har ställt in temat i web.config, så lägger aspnet_compiler till ett theme-attribut i @Page-direktivet på varje aspx-sida.

Eftersom lokala inställningar i en sida gör före inställningar i web.config så blir temat i praktiken hårdlött i hela applikationen. Lösningen är rimligt enkel: ta bort eller kommentera bort temainställningen ur web.config under publicering/förkompilering och lägg till den igen efteråt.

Alltså, var uppmärksam på hur teman fungerar, ta inget för givet (som vanligt).

Trevlig sommarvärme för övrigt.

Technorati tags: ,

0 Comments:

Skicka en kommentar

Links to this post:

Skapa en länk

<< Home