2013-03-28 1 views
2

오늘 SS 3.0에서 3.1로 업그레이드했고 업데이트 이후에 시스템이 내 확장 프로그램 _ _config 폴더에서 routes.yml 파일을 감지하지 못하는 것 같습니다.업그레이드 후 업그레이드가 작동하지 않습니다.

--- 
Name: pusherroutes 
After: 
    - '#rootroutes' 
--- 
Director: 
    rules: 
    # handle old 2.4 style urls 
    'pusher/$Action': 'PusherController' 

나는 또한 내 컨트롤러 액션을 화이트리스트에 정적 내 allowed_actions을 설정 한 : 여기 내 내 Extension/_config/routes.yml 파일의 예입니다

class PusherController extends Controller { 
    public static $allowed_actions = array (
    'ChatAuth', 
    'SendMessage', 
    'NotifyAuth' 
    ); 
} 

내가 mysite.com/로 이동 pusher/SendMessage 시스템이 더 이상 나를 컨트롤러의 액션 메소드로 안내하지 않습니다. 내 네트워크 탭에 반환되는 응답은 Silverstripe 시작 페이지입니다.

답변

3

$Action 매개 변수가 두 번 일치하기 때문입니다. 처음 pusher/$Action 경로가 일치하면 URL의 처음 두 부분이 일치 항목의 일부로 소비됩니다. 컨트롤은 PusherController 개체로 전달됩니다. 이렇게하면 URL을 작업에 다시 일치 시키려고 시도하지만 구문 분석 할 URL이 없으므로 아무런 작업이 없다고 판단하여 index 작업으로 라우팅합니다. 그러면 다시 시작 정보가 표시됩니다.

Director: 
    rules: 
    'pusher': 'PusherController' 

및 제어가 PusherController을 물려 때 수행되는 작업의 일치에 의존 :

은 사용이 문제를 해결합니다.