766AC5B9-35ED-4E86-B275-C338BAEC1ED6.jpeg

 

React 프로젝트를 빌드하고, 라이믹스 레이아웃 폴더에 옮긴 후 conf를 설정한 뒤 index.html을 layout.html로 변경했습니다.

이후 어드민 페이지에서 적용하려고 하니 정상 작동하지 않네요. Layout.html에 삽입된 ":"부분에서 syntax 에러를 뿜는데, 왜 이런 건지 모르겠습니다. 근데 <script> 블럭 안에 들어가 있는건데도... 웹 콘솔로 에러를 뿜는 것도 아니고 아예 라이믹스 단에서 적용하는 것이 막혀버립니다. 혹 XE 템플릿 문법과 충돌하는 부분이 있나 싶기도 하구요.

아예 React 요소들 로딩하는 스크립트 단에서 막혀버리니 막막하네요.

API를 통해 불러오는 방식이 아닌 XE 템플릿 문법 (ex. {$content})로 레이아웃을 만들어보려고 합니다.

 

당연히 빌드한 것을 다른 곳에 적용하면 잘 작동합니다.

 

아래는 layout.html 코드입니다.

 

A530A44F-6E96-4625-A2B6-6161FFB2D6AB.jpeg.jpg

  • profile
    script 부분을 따로 js 파일로 만들 수는 없나요
  • profile ?
    아, 시도해보겠습니다. 감사합니다.
  • ?

    xe의 템플릿 문법에서 {}는 중요한 의미라.. {뒤에 빈틈없이 글자가 들어가면 xe템플릿으로 해석됩니다 위치가 어디든 말이죠.. 솔직히 왜 이렇게 했는지는 의문입니다 앵귤러처럼 {{ }}로만 했어도 충돌이 훨씬 적을텐데 하여튼 xe 템플릿 문법으로 인식 안될려면 {다음에 빈칸을 넣어줘야 합니다 개인적으로 라이믹스에서 이걸 개선해줬음 좋겠다는 생각이 듭니다 xe 템플릿 문법.. 딴것들은 크게 불만없는데 {}는 짜증나는 경우가 많습니다

  • ? ?
    감사합니다. 저도 React 컴포넌트 내부에 XE변수를 활용하려고 했더니 스크립트로 인식되어서 {"{내용}"} 이런 식으로 활용하고 있네요. ㅠㅠ
  • profile

    layout.html은 따로 만들고, 거기에서 file_get_contents나 readfile 등 템플릿 문법 해석 없이 파일 내용을 그대로 가져오는 함수를 사용하여 index.html의 내용을 가져와 출력하세요.

    예: {file_get_contents(RX_BASEDIR.'layouts/레이아웃명/빌드경로/index.html')}

    그리고 레이아웃에서 사용하려면 doctype, html, head, body, meta, title 같은 태그들은 지워주는 것이 좋습니다. 코어에서 기본으로 넣어주는 태그와 중복됩니다.

  • profile ?
    조언 감사합니다. 역시 XE 문법이 문제였군요. 시도해보겠습니다!