Bonjour à tous.
Je bosse actuellement sur une appli sous Zend, qui a pour but de faire tourner plusieurs sites (en fait plusieurs sous-domaines) alimenté par une seule BDD.
Pour ceux qui connaissent un peu, l'idée que l'on a eu a été de mettre en place un module par sous-domaine, avec une redirection dans le bootstrap et une bidouille dans la définition des virtual hosts. L'article qui m'a guidé sur la mise en place (en anglais) : Routing Subdomains to Modules in Zend Framework.
Jusque là, tout roule, le but de partager les ressources communes niveau serveur (principalement les modèles, les plugins et les viewHelpers) est atteint.
Là ou je commence à m'interroger, c'est par rapport à tous ce qui est "ressources front-end".
Un exemple:
Deux urls, une même image. Dans le mesure ou il y a des liens entre les différents sites, ça me plait moyen niveau mise en cache.
La chose se reproduit également pour les css et les js partagés.
La première idée qui m'est venue est alors de créer un module vide, qui servent juste pour avoir un sous-domaine de "dépot", mais ça me pose plusieurs soucis.
- Obligation d'utiliser des urls absolues sur toute les images. Sur des pages avec beaucoup de pictos ou de visuels, je ne sais pas si le sur-poids sur le html ne va pas être conséquent.
- Pour les images, je me demande l'incidence au niveau référencement. Je pense en particulier à Google image comme possible point d'entrée au site.
- Pour les css, j'ai réglé le problème avec une css générale de layout + une par site. Pas parfait parce que ça m'oblige à rajouter pas mal de surcharge, et que pour ne pas rajouter 2 ou 3 feuilles pour les IE, je sais que mes css spécifiques à chaque site ne valident pas. Comme elle ne font même pas 50 lignes, ce n'est pas encore trop grave, mais si elles viennent à grossir, la facilité de maintenance va en prendre un coup.
- Au niveau du js, beaucoup de "widgets" se retrouvent d'un site à l'autre. Mais ça m'ennuie d'avoir un seule gros init qui va chercher des sélecteurs qui n'existent pas. Je pense que je recréerais un topic dans la section js juste pour ça car cette histoire est un beau morceau à elle toute seule.
Je me demandais, au vu des contraintes, quels serait votre approche pour :
- Si possible, garder des urls relatives, pour ne pas avoir un code html qui contiennent 50% d'attributs src.
- Faciliter au mieux la maintenance, en évitant le maximum les redondances d'un site à l'autre (le but étant que les mises à jours soient répercutées sur tous les sous-domaines).
- Éviter d'avoir plusieurs urls pour une même ressources, pour une mise en cache qui reste cohérente.
- Éviter d'éventuel effet de bords inattendus du point de vue référencement. Je pense pas qu'il y ait risque de Duplicate-content ou autre, mais dans le doute.
- Éventuellement, optimiser le tout, si vous avez des idées, n'hésitez pas.
Si vous avez des exemples de gros sites fonctionnant de le même manière, je suis bien entendu preneur.
Merci d'avance à pour vos lumières.
Note aux modos : Par commodité, j'ai regroupé plusieurs questions dans le même topic. Je le scinderais en plusieurs si nécessaire.
Je bosse actuellement sur une appli sous Zend, qui a pour but de faire tourner plusieurs sites (en fait plusieurs sous-domaines) alimenté par une seule BDD.
Pour ceux qui connaissent un peu, l'idée que l'on a eu a été de mettre en place un module par sous-domaine, avec une redirection dans le bootstrap et une bidouille dans la définition des virtual hosts. L'article qui m'a guidé sur la mise en place (en anglais) : Routing Subdomains to Modules in Zend Framework.
Jusque là, tout roule, le but de partager les ressources communes niveau serveur (principalement les modèles, les plugins et les viewHelpers) est atteint.
Là ou je commence à m'interroger, c'est par rapport à tous ce qui est "ressources front-end".
Un exemple:
<img src="http://domain1.monsite/img/logo.jpg" / >
<img src="http://domain2.monsite/img/logo.jpg" / >
Deux urls, une même image. Dans le mesure ou il y a des liens entre les différents sites, ça me plait moyen niveau mise en cache.
La chose se reproduit également pour les css et les js partagés.
La première idée qui m'est venue est alors de créer un module vide, qui servent juste pour avoir un sous-domaine de "dépot", mais ça me pose plusieurs soucis.
- Obligation d'utiliser des urls absolues sur toute les images. Sur des pages avec beaucoup de pictos ou de visuels, je ne sais pas si le sur-poids sur le html ne va pas être conséquent.
- Pour les images, je me demande l'incidence au niveau référencement. Je pense en particulier à Google image comme possible point d'entrée au site.
- Pour les css, j'ai réglé le problème avec une css générale de layout + une par site. Pas parfait parce que ça m'oblige à rajouter pas mal de surcharge, et que pour ne pas rajouter 2 ou 3 feuilles pour les IE, je sais que mes css spécifiques à chaque site ne valident pas. Comme elle ne font même pas 50 lignes, ce n'est pas encore trop grave, mais si elles viennent à grossir, la facilité de maintenance va en prendre un coup.
- Au niveau du js, beaucoup de "widgets" se retrouvent d'un site à l'autre. Mais ça m'ennuie d'avoir un seule gros init qui va chercher des sélecteurs qui n'existent pas. Je pense que je recréerais un topic dans la section js juste pour ça car cette histoire est un beau morceau à elle toute seule.
Je me demandais, au vu des contraintes, quels serait votre approche pour :
- Si possible, garder des urls relatives, pour ne pas avoir un code html qui contiennent 50% d'attributs src.
- Faciliter au mieux la maintenance, en évitant le maximum les redondances d'un site à l'autre (le but étant que les mises à jours soient répercutées sur tous les sous-domaines).
- Éviter d'avoir plusieurs urls pour une même ressources, pour une mise en cache qui reste cohérente.
- Éviter d'éventuel effet de bords inattendus du point de vue référencement. Je pense pas qu'il y ait risque de Duplicate-content ou autre, mais dans le doute.
- Éventuellement, optimiser le tout, si vous avez des idées, n'hésitez pas.
Si vous avez des exemples de gros sites fonctionnant de le même manière, je suis bien entendu preneur.
Merci d'avance à pour vos lumières.
Note aux modos : Par commodité, j'ai regroupé plusieurs questions dans le même topic. Je le scinderais en plusieurs si nécessaire.