2009-10-06 3 views
1

Pylons 응용 프로그램에서 경로 테이블을 구성 중입니다. 나는 그것이 작동해야하는 방식으로 작동하도록 redirect()를 할 수 없다. 내가 뭘 잘못하고 있는지 모르겠다.) (여기 redirect() 실제 리디렉션되지 않음 (Pylons의 경로)

map.redirect("/view", "/", _redirect_code="301 Moved Permanently") 

리디렉션을 사용 경로입니다 :

여기
map.redirect("/home/index", "/", _redirect_code="301 Moved Permanently") 

내 routing.py 파일에 나타나는 것입니다 : 여기

Routes documentation에서 리디렉션() 사용의 예입니다 내 routing.py 파일의 끝에 나타납니다 :

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

이 경로는 잘 작동하므로 redirect()가 존재하고 작동하는지 확인하십시오. 따라서/view 리디렉션에서 잘못된 작업을하고 있습니다. 브라우저를/view로 지정하면 리디렉션되는 대신 404 페이지가 표시되기 때문에이 사실을 알 수 있습니다. 가고/잘 작동하므로 문제가 있다고 생각하지 않습니다. Route의 redirect()는 훌륭한 아이디어이며 의도 한대로 사용할 수 있기를 바랍니다. 그러나 여기서 내가 잘못하고있는 것이 확실하지 않습니다.

ETA @jasonjs : 나는 다른 경로가 일치하지 않는다고 생각합니다. 내가 액세스/보려고 한 후 Paster의 출력을 보면, 여기에 내가 무엇을 얻을 : 나에게 아주 결정적인 것

21:22:26,276 DEBUG [routes.middleware] No route matched for GET /view 

합니다. 나는 /보기로 POST 요청을 일치하는 경로가 있음을 언급해야한다 :

map.connect('/view', controller='view', action='search', conditions=dict(method=['POST']) 

그 경로는 제대로 작동하고, 나는 그것을 시도하기 전에 검사를 시도합니다 있도록이 routing.py의 앞부분에 나와있는/view [GET] 경로와 일치해야합니다.

+0

수정 된 답변 : 내가 생각할 수있는 다른 것만을 생각해보십시오. 최신 루트 버전은 "나를 위해 효과가 있습니다." –

답변

1

구문이 작동하므로 계속 진행 중이어야합니다.

경로는 주문에 민감합니다. 리디렉션 위의 다른 경로가 /view과 404를 반환하는 컨트롤러와 일치합니까?

경로는 후행 슬래시에도 민감합니다. 실수로 브라우저에 후행 슬래시를 입력 했습니까? 그렇지 않으면 경로에 슬래시를 입력 했습니까?

마지막으로, [logger_routes]에서 level = DEBUG을 설정하면 development.ini에, 당신은 다음 일치 된 것을 볼 수 /view를 방문 후 로그 메시지를 확인할 수 있습니다.

ETA : 동일한 경로의 리디렉션 전에 POST 일치 규칙을 적용하려고 시도했지만 예상대로 작동했습니다. 최신 루트 버전 (1.11)을 사용하고 계십니까? 그렇지 않으면 코드를 볼 수 없어서 당신을 위해 다른 것을 갖지 못합니다. barebones 테스트 케이스로 시작하여 깨지거나 움직일 때까지 물건을 가져갈 수 있습니다 ...

+0

귀하의 정보 요청을 반영하여 편집 됨. – Krinn

+0

글쎄, 1.10에서 1.11로가는 것은 효과가있어, 고마워. 나는 그것을 버그 수정까지 분필 할 것이다. – Krinn

관련 문제