2013-06-06 1 views
0

URI 경로에 문제가 있습니다.webapp2 다중 경로가있는 DomainRoute

http://www.example.com - OK 
http://www.example.com/en - 404 
http://www.example.com/bm - 404 
http://www.example.com/my - 404 
http://www.example.com/zh - 404 
http://www.example.com/cn - 404 

내 두 번째 무시 무시한 것처럼 보입니다. 내 경로가 잘못 되었나요?

app = webapp2.WSGIApplication([ 
routes.DomainRoute(r'<:(localhost|example\.com|www\.example\.com)>', [ 
    webapp2.Route('/', handler=WebHome, name='WebHome'), 
    webapp2.Route('/(en|bm|my|cn|zh)', handler=WebHome, name='WebHome'), 
    webapp2.Route('/(en|bm|my|cn|zh)/', handler=WebHome, name='WebHome'), 
]), 

routes.DomainRoute(r'<:(m2.example.com|m.example.com)>', [ 
    webapp2.Route('/', handler=MobileHome, name='MobileHome'), 
    webapp2.Route('/(en|bm|my|cn|zh)', handler=MobileHome, name='MobileHome'), 
    webapp2.Route('/(en|bm|my|cn|zh)/', handler=MobileHome, name='MobileHome'), 
]),], 
debug=True) 

class WebHome(webapp2.RequestHandler): 
    def get(self, language='en'): 
    buf = 'home for %s' % (language,) 
    self.response.write(buf) 
+1

당신이 다른 경로에 대한 (WebHome 같은) 같은 이름을 사용하는 이유를 이해할 수없는 : 그들은 모두 같은 handler를 사용하는 경우 또한, name 매개 변수에 대해 하나의 경로를 선택합니다. 이름은 uri를 만드는 데 사용될 수 있습니다. 어쩌면 이것이 당신 문제의 이유 일 것입니다. – voscausa

답변

1

webapp2.Route<> 사용하여 내 webhome 클래스, 괄호 없습니다.

app = webapp2.WSGIApplication([routes.DomainRoute(r'<:(localhost|mysite\.com|www\.mysite\.com)>', [ 
    webapp2.Route('/', handler=WebHome), 
    webapp2.Route('/<language:en|bm|my|cn|zh>', handler=WebHome), 
    webapp2.Route('/<language:en|bm|my|cn|zh>/', handler=WebHome, name='WebHome'), 
]), 

routes.DomainRoute(r'<:(m2.mysite.com|m.mysite.com)>', [ 
    webapp2.Route('/', handler=MobileHome), 
    webapp2.Route('/<language:en|bm|my|cn|zh>', handler=MobileHome), 
    webapp2.Route('/<language:en|bm|my|cn|zh>/', handler=MobileHome, name='MobileHome'), 
]),], debug=True)