2008-11-05 6 views
0

J'ai un site Web qui utilise des thèmes. En fonction de l'URL (si c'est A.Something.com ou B.quelque chose.com, où A et B représentent des clients), je chargerai un thème différent. L'intention est d'utiliser une base de code pour différents clients. J'ai un dossier app_themes, plusieurs thèmes à l'intérieur, pour différents clients, et différents fichiers CSS pour chaque thème (pour des raisons professionnelles, le fichier CSS est le même pour chaque thème, mais en double). Donc, mon code ressemble à ceci:Le thème est référencé mais non utilisé, à l'exécution

Public Overrides Property StyleSheetTheme() As String

Get 
     Dim myHost As String = Request.Url.Host 
     Return myHost 
    End Get 
    Set(ByVal value As String) 
    End Set 
End Property 







Protected Sub Page_PreInit(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.PreInit 

    If Request.Url.Host.Contains("Savills") Then 
     Page.Theme = "Savills" 
    ElseIf Request.Url.Host.Contains("localhost") Then 
     Page.Theme = "localhost" 
    ElseIf Request.Url.Host.Contains("test.concepglobal.com") Then 
     Page.Theme = "test.concepglobal.com" 
    ElseIf Request.Url.Host.Contains("concepglobal") Then 
     Page.Theme = "concepglobal" 

    End If 



End Sub 

Mon App_Themes structure du dossier:

App_Themes:

localhost:

default.css

SavillsCependant, à chaque fois que je charge le site, le CSS n'est pas détecté. Donc je n'obtiens pas le style h1 que j'ai conçu dans le css (il est dedans), mais seulement les graphismes spécifiés dans la page aspx.

Ma source lors de l'exécution du site:

(chargement du site à l'URL).

Embrouillant, il y a un autre lien vers la même css:

Qu'est-ce que je fais mal?

Merci

Répondre

2

Est-ce que se produit lorsque vous exécutez le code dans Visual Studio? Lors de l'exécution dans ASP.Net Development Server, les styles de App_Themes ne seront utilisés sur aucune page non authentifiée (comme Login.aspx ou ForgotPassword.aspx). En effet, l'utilisateur n'a pas encore les autorisations de navigation sur ce dossier, ou le dossier App_Themes ne dispose pas d'autorisations de navigation. Apparemment, IIS gère cela mais Cassini ne le fait pas. Essayez d'ajouter ceci à web.config pour laisser les thèmes et les styles fonctionner avant l'authentification. Ou, si possible, passez à l'exécution de l'application sur IIS sur votre ordinateur.

0

Au lieu de faire ce code cependant, vous pouvez spécifier le thème utilisé par l'application (ou un dossier) dans votre web.config:

<system.web> 
    <pages theme="concepglobal"></pages> 
</system.web> 

Cela suppose que vous avez différents fichiers web.config pour chaque client .

Questions connexes