CMS/프레임워크 | Rhymix 2.1 |
---|---|
개발 언어 | PHP 7.4 |
다름이 아니라 최근에 rhymix 2.0.22 에서 2.1.23 으로 업데이트했습니다.
그런데, 기존에 본문에 첨부된 이미지들 경로가 ./files로 되어 있어서 글을 볼 때는 문제가 없는데
에디터에서는 이미지가 출력되지 않는 문제가 있더라구요.
이 부분은 수동으로 수정해줘야 하는 부분일까요?
물론 새로 첨부하거나, 이미 첨부된 이미지를 삽입하는 것은 문제가 없습니다.
또한 글쓰기 화면에서만 그렇지, 실제 등록할 땐 문제가 없습니다.
그리고, db table에서 xe_files을 보면 uploaded_filename 경로는 최신버전으로 업데이트해도
./files/~
경로로 저장되는데, 해당 값을 불러올 때 별도로 . 부분을 날리는 걸까요?
만들어서 사용하고 있는 에디터 컴포넌트가 있는데
파일 업로드를 다음과 같이 처리하고 있거든요.
$uploadedFile = $oFileController->insertFile($file_info, $module_info->module_srl, $upload_target_srl, 0, true);
$uploadedFile->get('uploaded_filename');
위와 같이 파일 업로드를 하고 이미지 경로를 가져오고 있는데
uploaded_filename 가 결국 ./files로 되어 있어서 에디터에서는 이미지가 뜨질 않아, 임시로
preg_replace("@^.@", "", $uploadedFile->get('uploaded_filename'));
임시로 치환해서 사용하고 있습니다.
댓글 4
에디터에서는 경로와 관계없이 ./files로 나오는 것이 정상입니다.
글읽기 화면에서는 맨 앞의 ./를 실제 라이믹스 설치 경로로 치환하여 보여 줍니다.
예를 들어 라이믹스를 /rhymix/ 경로에 설치해 놓은 사이트라면 /rhymix/files/... 로 치환됩니다.
글쓰기 화면에서 ./files 상대경로를 사용하는 이유는
글 저장 후 어떤 경로에서 그 글이 보여질지 알 수 없기 때문입니다.
설치 경로를 옮기거나 짧은주소 규칙이 더 복잡하게 바뀌더라도 글을 일일이 수정할 필요가 없도록,
쉽게 인식하고 자동으로 치환할 수 있는 ./ 부분을 남겨두는 것입니다.
./files 라고 상대경로를 사용하더라도 rewrite 규칙에 의해 실제 경로를 잘 찾아가도록 설계되어 있습니다.
일반적으로 그 앞에 붙을 만한 것은 mid인데, 아래의 사진처럼 files 앞에 mid가 붙어도 잘 나와야 한다는 뜻입니다.
(일부러 본문 소스를 수정하여 whatevermid를 붙였습니다.)
만약 엑박이 뜬다면 서버의 rewrite 설정이 잘못된 것이 아닌지 의심해 보아야겠습니다.
https://github.com/rhymix/rhymix/blob/master/common/manual/server_config/rhymix-nginx.conf
이걸 적용하고 있는데요
에디터 화면에서 경로가 https://sitename.com/mid/srl/write|edit
이렇게 되는데 찾을 수 없다고 뜨는 경로가
콘솔에서 보니 https://sitename.com/mid/srl/files~~~ 이렇게 잡히더라구요.
최신버전에서 이미지 파일 첨부시 /files로 잡히더라구요.(에디터 기준)
근데 희한하게 갑자기 됐습니다.-_-;;
캐시...였나?
원인은 모르겠는데 해결된 상황입니다. ㄷㄷ
근데 또 보니까.... 처음엔 엑박인데, 좀 지나고나서 수정을 누르고 보면 이미지가 보이더라구요
뭔가 캐시(?) 그런거랑 관계가 있나봅니다. 클플인지 모르겠는데 좀더 파봐야겠네요..
아 원인을 찾았습니다.
슈퍼캐시 모듈에서 저 옵션이 켜져있으면 발생하는 문제네요.
저걸 끄니까 ./files~ 경로의 이미지도 바로 잘 뜹니다.