Domanda

Qual è il modo migliore per fare in modo che le barre finali non contino nell'ultima versione di Route (1.10)? Attualmente sto usando chiaramente non-DRY:

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

Penso che attivare la minimizzazione farebbe il trucco, ma ho l'impressione che sia stato disabilitato nelle nuove versioni di Route per un motivo. Sfortunatamente la documentazione non sembra essersi messa al passo con lo sviluppo di Routes, quindi non riesco a trovare buone risorse su cui andare. Qualche idea?

Soluzione

Esistono due modi possibili per risolvere questo problema:

  1. Fallo interamente in tralicci .
  2. Aggiungi una regola htaccess per riscrivere la barra finale .

Personalmente non mi piace la barra finale, perché se hai un uri come:

http://example.com/people

Dovresti essere in grado di ottenere gli stessi dati in formato XML andando su:

http://example.com/people.xml

Altri suggerimenti

Il frammento seguente è stato aggiunto come ultima route funzionata per me:

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

http://www.siafoo.net/snippet/275 ha un pezzo base di middleware che rimuove una barra finale dalle richieste. Un'idea intelligente e ho capito molto meglio il concetto di middleware nelle applicazioni WSGI dopo aver capito cosa fa.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow