2010-01-20 5 views
1

mon site a quelques skins, pour repsent l'interface utilisateur. Ces habillages sont basés sur le HOSTNAME avec lequel ils se connectent. En tant que tel, chaque fichier css, image, etc. doit être précédé de l'emplacement correct du dossier.Thème un site basé sur le nom d'hôte

Donc, j'ai pensé que je devrais le mettre dans la session de l'utilisateur.

Donc, quel est le premier endroit où je peux/devrais faire cela.

Deuxièmement, devrais-je m'en souvenir dans la session, ou gérer cela par demande?

(S'il vous plaît ne pas mentionner App_Themes - Je sais à leur sujet, etc.)

Répondre

1

Pourquoi mettre cela en session? Cela n'a pas beaucoup de sens pour moi. Si j'avais besoin de modifier chaque URL qui venait, je créerais un HttpModule. Ou alternativement, créez un HttpHandler pour gérer les demandes de type css, jpg, etc.

Aussi ... vous réalisez que par défaut, IIS ne transfère pas les demandes de CSS, d'images, etc. au processus ASP.NET ?

+0

vous avez mal interprété mon message. Je n'essaye pas de modifier n'importe quelle URL qui entre. Si je voulais faire cela, je vais utiliser l'éditeur d'url intégré avec IIS7. J'essaie de générer les liens sur le HTML pour aller à l'emplacement correct pour les actifs de site Web (par exemple, images/js/css) .C'est donc un problème de sortie –

+0

Je vois ... dans ce cas, je sous-classe l'ASP existant: Hyperlien, ou créez une classe utilitaire spécialisée pour les liens, comme vous le voyez dans la plupart des systèmes de gestion de contenu (pour des raisons similaires). – Bryan

0

Vous devez simplement le supprimer de Request.Url.Host qui est déjà disponible dans la demande. Pour une bonne séparation des problèmes, faites en sorte que les thèmes soient enum ou quelque chose, décidez qui dans votre Controller ou CodeBehind puis passez cette énumération dans votre ViewModel vos clés de code (ne sais pas si vous utilisez Web Forms ou MVC donc c'est vague) .

Vous ne devriez certainement pas le stocker dans la session parce que ce n'est pas quelque chose qui varie d'un utilisateur à l'autre.

Questions connexes