sdx-developers
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sdx-developers] Sitemap, pipeline statique


From: Frédéric Glorieux
Subject: [sdx-developers] Sitemap, pipeline statique
Date: Wed, 7 May 2003 16:27:58 +0200

        Vous l'avez certainement remarqué, la sitemap racine de SDX
attrape toutes les URL statique du genre **.xml, **.css, **.jpg ...
        C'était un choix réfléchi, pour au moins 2 raisons
1- laisser un serveur statique (genre Apache) servir lui-même des
ressources statiques
2- éviter la trop grande virtualité des URLs proposées par Cocoon

En conséquence, la sitemap racine actuelle pourrait s'écrire ainsi (ce
n'est pas l'exact code actuel)

<map:call resource="static"/>
<map:match pattern="*/**">
  <!-- ici se "monte" le sous sitemap d'une application -->
  <map:mount uri-prefix="{1}" src="{1}/" check-reload="yes"/>
</map:match>

où la resource "static" s'écrit ainsi

<map:resources>
  <map:resource name="static">
    <map:match pattern="**.ai">
      <map:read src="{1}.ai" mime-type="application/postscript"/>
    </map:match>
    <map:match pattern="**.aif">
      <map:read src="{1}.aif" mime-type="audio/x-aiff"/>
    </map:match>
    <map:match pattern="**.aifc">
      <map:read src="{1}.aifc" mime-type="audio/x-aiff"/>
    </map:match>
        [...]
  </map:resource>
[...]

Cet ordre a un gros inconvénient. Dans mon application, si je veux par
exemple aller chercher des images dans un autre chemin qu'attendu

Exemple: redirection/image.jpg >  /home/data/images/image.jpg

je ne peux pas, c'est intercepter avant pas la sitemap racine.

Pour contourner, je dois fabriquer des pseudos nouvelles url, du genre
Redirection/image.mon_extension > j'en fais ce que je veux

L'usage a montré que cela devient vite lourd.

-------------------
Rapidement, on se serait dit qu'il suffirait d'inverser l'ordre

<map:match pattern="*/**">
  <!-- ici se "monte" le sous sitemap d'une application -->
  <map:mount uri-prefix="{1}" src="{1}/" check-reload="yes"/>
</map:match>
<map:call resource="static"/>

Pas de chance, la sous sitemap montée prend tout ce qui la concerne, et
ne lâche plus la main (si quelqu'un trouvait une solution, tant mieux).
Ce qui signifie que le sitemap d'une application devrait alors s'occuper
elle-même de servir ses ressources statiques.

On se serait dit qu'il aurait été agréable de pouvoir hériter du
fragment de pipeline cité au-dessus, et là non plus, on n'a pas trouvé
de solution.

Il reste une dernière possibilité, peu élégante, mais qui ne perturbe
pas trop les navigateurs, que le dernier <map:match/> d'une application
soit

<map:match pattern="**.*">
  <map:read src="{1}.{2}"/>
</map:match>

On y perd la declaration de type mime, mais si nécessaire, le
développeur d'application ne peut-il pas ajouter la declaration qui lui
est nécessaire ?








reply via email to

[Prev in Thread] Current Thread [Next in Thread]