증상:

디폴트 레이아웃의 main.php와 zone.php에 현재 메뉴 출력하는 삽입 코드 삽입하면 


<?php getWidget('breadcrumbs',array());?>


정상적으로 (이미지 적용 및 jQuery 효과 적용) 출력이 안 됨. 특히 적용 후 상단의 

Clear Widget Cache를 적용하면 jQuery가 정의되어 있지 않다고 함. 



원인:

원인은 위젯이 호출되는 시점에서 jQuery가 로딩되지 않은 상태임. 레이아웃의 main.php, 

zone.php의 최상단에서 jQuery를 호출하고 있고 동일 파일의 하단 부분에서 저 위젯을 호출하고

있으나 clear widget cache 적용시 위젯의 js 및 css를 import하는 코드가 레이아웃 파일보다

먼저 로딩되기 때문에 순서가 엇갈림. 


조치:

사이트 전체적으로 jquery를 사용하기 때문에 위젯 사용 시 이와 같은 문제는 향후 지속적으로 

발생할 것으로 예상되므로 가급적으로 위젯 사용을 자제. 


1. 레이아웃의 main.php 및 zone.php의 jquery include 코드 다음 부분에 해당 위젯의 js 및 css

include 선언함. 

2. 위젯 코드를 실제 사용되는 위치에 적용

3. jquery 코드는 레이아웃의 main, zone.php의 


$(document).ready(function(){});


함수 안으로 옮김

Posted by 파노카페
: