私はwebapp2ルーティングについて奇妙な感覚を持っています。それが理由です。以下の例では、私のサイトのニュース マッピングからの覗き見があります。
問題は、一部のキーではstrict_slash=Trueがうまく機能し (301 を生成)、別のキーではまったく機能しない (404) のはなぜですか?
from webapp2 import WSGIApplication, Route as url
from webapp2_extras.routes import (PathPrefixRoute as patterns,
RedirectRoute as rurl)
from .views import (MainHandler)
from .views_news import (NewsAllHandler, NewsAnnualHandler, NewsMonthlyHandler,
NewsDailyHandler, NewsTagsHandler, NewsTagHandler,
NewsHandler)
app = WSGIApplication([
url('/', MainHandler, 'main'),
patterns('/news', [
rurl('/', NewsAllHandler, 'news_all',
strict_slash=True), # here wont work /news isn't /news/ — get 404
patterns('/tags', [
rurl('/', NewsTagsHandler, 'news_tags',
strict_slash=True), # works well /tags 301 redirects to /tags/
rurl('/<tag:[\w\d-]+>/', NewsTagHandler, 'news_tag',
strict_slash=True),
]),
patterns('/<year:\d{4}>', [
rurl('/', NewsAnnualHandler, 'news_year',
strict_slash=True), # works well /d{4} 301 redirects to /d{4}/
rurl('/<month:\d{2}>/', NewsMonthlyHandler, 'news_month',
strict_slash=True),
rurl('/<month:\d{2}>/<day:\d{2}>/', NewsDailyHandler, 'news_day',
strict_slash=True),
rurl('/<month:\d{2}>/<day:\d{2}>/<slug:[\w\d-]+>/', NewsHandler, 'news',
strict_slash=True),
]),
]),
], debug=True)
私は何かを見逃していますか?私を助けてください、それは私を驚かせています!