Question

Quel est le meilleur moyen de ne pas importer les barres obliques dans la dernière version de Routes (1.10)? J'utilise actuellement le clairement non-DRY:

map.connect('/logs/', controller='logs', action='logs')
map.connect('/logs', controller='logs', action='logs')

Je pense que l'activation de la minimisation ferait l'affaire, mais j'ai l'impression qu'elle a été désactivée dans les nouvelles versions de Routes pour une raison. Malheureusement, la documentation ne semble pas avoir rattrapé le développement de Routes, donc je ne trouve aucune bonne ressource à consulter. Des idées?

Solution

Il existe deux manières possibles de résoudre ce problème:

  1. Faites-le entièrement dans les pylons .
  2. Ajouter une règle htaccess pour réécrire la barre oblique finale .

Personnellement, je n'aime pas la barre oblique finale, car si vous avez un URI comme:

http://example.com/people

Vous devriez pouvoir obtenir les mêmes données au format XML en allant sur:

http://example.com/people.xml

Autres conseils

L'extrait suivant ajouté comme tout dernier itinéraire a fonctionné pour moi:

map.redirect('/*(url)/', '/{url}',
             _redirect_code='301 Moved Permanently')

http://www.siafoo.net/snippet/275 a un élément de base de middleware qui supprime une barre oblique de fin de requêtes. C'est une idée intelligente et j'ai beaucoup mieux compris le concept de middleware dans les applications WSG après avoir réalisé ce que cela faisait.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow