Pregunta

¿Cuál es la mejor manera de hacer que las barras diagonales finales no importen en la última versión de Rutas (1.10)? Actualmente estoy usando lo claramente no SECO:

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

Creo que activar la minimización sería suficiente, pero tengo la impresión de que estaba deshabilitado en las versiones más recientes de Rutas por una razón. Lamentablemente, la documentación no parece haberse puesto al día con el desarrollo de Rutas, por lo que no puedo encontrar ningún buen recurso para ir. ¿Alguna idea?

Solución

Hay dos formas posibles de resolver esto:

  1. Hazlo completamente en pilones .
  2. Agregue una regla htaccess para volver a escribir la barra inclinada al final .

Personalmente no me gusta la barra inclinada, porque si tienes un uri como:

http://example.com/people

Debería poder obtener los mismos datos en formato xml yendo a:

http://example.com/people.xml

Otros consejos

El siguiente fragmento agregado como la última ruta funcionó para mí:

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

http://www.siafoo.net/snippet/275 tiene una pieza básica de middleware que elimina una barra diagonal final de las solicitudes. Una idea inteligente, y entendí mucho mejor el concepto de middleware en aplicaciones WSGI después de que me di cuenta de lo que esto hace.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow