질문/조언질답게시판

전문가님께 의뢰드리는게 가장 빠르겠지만, 그래도 운영자로서 조금씩 연습하고 배워야 된다고 생각해서 항상 끙끙대면서 1차로 시도는 해봅니다... ㅎㅎ

 

이번에 별도의 캐시서버도 혼자 구축을 했고 잘 동작을 하고 있는데요

 

라이믹스 코어에서 제공해주는 CSS JS 합치기 기능을 통해서 모두 합쳐서 현재 운영중입니다.

 

그런데 이 CSS 및 JS주소를 xetown.com 이 아니라, cdn.xetown.com 에서 불러오도록 수정하는 방법이 있을까요?

 

제가 시도해본 방법으로는

common_layout.html 파일에서

 

<!-- CSS -->
<block loop="Context::getCssFile(true) => $key, $css_file">
<block cond="$css_file['targetie']"><!--[if {$css_file['targetie']}]><block cond="stripos($css_file['targetie'], 'gt') === 0"><!--></block></block>
<link rel="stylesheet" href="{$css_file['file']}" media="{$css_file['media']}"|cond="$css_file['media'] != 'all'" />
<block cond="$css_file['targetie']"><block cond="stripos($css_file['targetie'], 'gt') === 0"><!--</block><![endif]-->{"\n"}</block>
</block>

<!-- JS -->
<block loop="Context::getJsFile('head', true) => $key, $js_file">
<block cond="$js_file['targetie']"><!--[if {$js_file['targetie']}]><block cond="stripos($js_file['targetie'], 'gt') === 0"><!--></block></block>
<script src="{$js_file['file']}"></script>
<block cond="$js_file['targetie']"><block cond="stripos($js_file['targetie'], 'gt') === 0"><!--</block><![endif]-->{"\n"}</block>
</block>

여기에서 

 

<link rel="stylesheet" href="{$css_file['file']}" media="{$css_file['media']}"|cond="$css_file['media'] != 'all'" />

<link rel="stylesheet" href="https://cdn.xetown.com{$css_file['file']}" media="{$css_file['media']}"|cond="$css_file['media'] != 'all'" />

 

으로 바꾸고

 

<script src="{$js_file['file']}"></script>

<script src="https://cdn.xetown.com{$js_file['file']}"></script>

 

으로 바꾸었는데 

 

그렇게하면 작동은 하는데

 

브라우저 개발저 도구에서 확인해보니까 기존 xetown.com 에서 불러와지던 JS파일과, 그리고 cdn.xetown.com 에서 불러와지는 JS파일 이렇게 2개를 로드 하더라구요 ㅠㅠ

 

혹시 조언을 부탁드려도 되나 싶어서 글을 작성해봅니다...

  • profile
    display 이라는 트리거를 이용하여 해당 부분을 치완하면 됩니다.

    모듈에서 display트리거를 인수값을 가져오면 html 을 출력해주는데 거기에서 도메인을 가져와서 치환하시면 거기에서 알아서 외부 서버로 연결할 수 있습니다.

    애드온에서도

    $called_position 이 'before_display_content' 값인 채로 로딩시킨다음 해당 애드온에서도 치환이 가능합니다.
  • profile profile
    아 그러면 해당 애드온 코드에서, xetown.com 이라는 주소를 찾는 조건문을 만들어서 모두 cdn.xetown.com 으로 바꾸어두면 되겠군요

    이제는 regex 정규식 문제가 남긴했지만..그래도 감사합니다!
  • profile profile
    일반적으로는 도메인이 안붙을꺼예요.
  • profile profile
    넵넵 제가 확인해보아도 보통은 경로를 "./~~~" 로 지정해주면 그걸 브라우저단에서 도메인을 붙여서 호출을 하는것 같더라구요
    그래도 기본방향을 알려주셔서 개발시도에 큰 도움이 되었습니다
    감사합니다!!
  • profile
    하지 마세요.
    그렇게까지 트래픽을 줄여야 한다면 그냥 서버를 옮기는 게 답입니다.
    코어에 포함된 파일을 엉뚱한 곳에서 로딩하다가 애매한 문제가 생기면 정말 골치아픕니다.

    참고: https://github.com/rhymix/rhymix/pull/1053#issuecomment-410532987
  • profile profile
    아아 트래픽을 줄이기 보다는
    아무래도 그냥 텍스트 정보보다는 컴파일된 css 및 js파일이 크기가 커서, 한국에 위치한 캐시서버에서 우선 로딩되도록 할 생각이었습니다..!

    코어와 밀접한 부분이니 안하는게 더 낫겠네요
    답변 감사합니다!