모듈에서 주소 관련 오류 입니다.
CMS/프레임워크 | Rhymix 2.0 |
---|---|
개발 언어 | PHP 7.3 |
문제 페이지 주소 | 비공개 (작성 후 5일 경과) |
회원 정보 보기 페이지에서 결제 내역 관리 항목을 만들었습니다.
가령 멤버 저장글 보기의 경우 주소는 아래와 같습니다. main은 현재 메인 페이지 주소값입니다.
사이트주소/index.php?act=dispMemberSavedDocument&mid=main
정상노출됩니다.
그런데 제가 만든 모듈에서
사이트주소/index.php?act=dispIamportManage&mid=main
호출하면 해당 스킨의 파일을 못찾고 Not Found template File 에러를 발생시킵니다.
이게 모든 사이트면 문제가 없는데, 몇 몇 사이트에서만 해당 버그가 발생합니다.
라이믹스 설정도 똑같고, 심지어 호스팅사도 같은 곳인데 종종 에러가 발생합니다.
이 경우 어떤 부분을 찾아보면 좋을지, 라이믹스 고수님들의 조언 부탁드립니다.
감사합니다.
댓글 7
가령 mid=main 이 아닌, 해당 모듈로 생성된 mid값 에서는 해당 메소드가 당연히 잘 호출됩니다;
dispMemberSavedDocument처럼 내 모듈이 아닌 다른 mid에서 호출하는 액션은
module.xml에서 해당 액션에 standalone="true" 옵션을 주어야 안정적으로 작동합니다.
이 옵션이 없을 때는 짧은주소 사용 여부, route 선언 여부 등
환경에 따라 오락가락하는 경우가 있습니다.
원칙적으로는 이런 식으로 호출해서는 안 되는데 회원모듈 때문에 봐주다 보니
자꾸 그런 식으로 만드시는 분들이 늘어나네요;;;
standalone="true" 을 줘도, 작동을 안하네요 댓글 주셔서 감사합니다!
액션은 정상적으로 호출되는데 스킨만 못 찾는다면 해당 mid의 스킨 설정과 혼동을 일으키고 있을 가능성도 있습니다. 게시판 스킨 폴더에서 님 모듈 스킨을 찾고 있다거나, 아니면 게시판 스킨의 특정 설정값이 님 모듈의 설정값 이름과 겹쳐서 영향을 준다거나... 혹시 setTemplatePath()를 init()에서 일괄적으로 하고 계시다면 각각의 액션 하단에서 setTemplateFile()과 나란히 써 보세요. init()도 어떤 때는 호출되고 어떤 때는 안 되고 무척 일관성이 없는 기능 중 하나입니다.
물론 강제로 mid값을 주는 것이 가장 이상적이기는 합니다. 다른 모듈에 얹혀서 돌아가는 코어의 회원 모듈과 커뮤니케이션 모듈도 2.1 또는 그 후 버전에서는 강제로 mid를 할당하는 방식으로 바꿀 예정입니다.
감사합니다! 기진곰님 덕분에 해결했네요 , 바로 위에서 setTemplate 해서 경로를 확정지어주니 해결되었습니다! 감사합니다!
이후, 코어 수정되는 방향을 보고 저도 기존 모듈들을 수정해야겠습니다!
네, standalone 액션은 두 개의 모듈을 동시에 사용하려다 보니 항상 충돌의 가능성이 있습니다. 예전에 이상하게 설계해 놓은 것들은 점차 고쳐나가야지요...