1.8.44 업데이트 후 해시태그 애드온 이상
보안패치 후 해당 애드온에서 출력해주는 부분이 모바일에서 동작하지 않아 일반 문자로 출력됩니다.
링크도 안걸리고 글자효과도 적용되지 않구요.
*PC는 정상출력되는데 모바일에서만 정상출력이 안되고 있네요.
https://xe1.xpressengine.com/index.php?mid=download&package_id=22753681
보안패치 후 해당 애드온에서 출력해주는 부분이 모바일에서 동작하지 않아 일반 문자로 출력됩니다.
링크도 안걸리고 글자효과도 적용되지 않구요.
*PC는 정상출력되는데 모바일에서만 정상출력이 안되고 있네요.
https://xe1.xpressengine.com/index.php?mid=download&package_id=22753681
댓글 42
Uncaught TypeError: window.XE.isSameHost is not a function xe.min.js?20170912151510:6
에러 클릭해보면 위 내용 중 windo커서깜빡w 이렇게 가리키고 있네요.
이곳의 조건을 if(true)로 바꾸어서 압축된 파일이 아닌 개별 파일이 각각 로딩되도록 해보세요. xe.min.js처럼 여러 스크립트를 하나로 합쳐 압축해 놓은 파일은 디버깅하기가 너무 힘들어서요...
VM5807 common.js?20170912151510:155Uncaught TypeError: Cannot read property 'noConflict' of undefined(anonymous function) @ VM5807 common.js?20170912151510:155(anonymous function) @ VM5807 common.js?20170912151510:156 VM5807 common.js?20170912151510:141Uncaught TypeError: window.XE.URI is not a function
141번 라인 : var base_url = window.XE.URI(window.request_uri).normalizePort().normalizePathname();
if(true)
{
$oContext->loadFile(array('./common/js/jquery-1.x.js', 'head', 'lt IE 9', -111000), true);
$oContext->loadFile(array('./common/js/jquery.js', 'head', 'gte IE 9', -110000), true);
$oContext->loadFile(array('./common/js/modernizr.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/x.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/URI.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/blankshield.min.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/common.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/js_app.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/xml2json.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/xml_handler.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/xml_js_filter.js', 'head', '', -100000), true);
PC에서는 문제가 없습니다. 모바일보기에서 문제가 생깁니다.
(PC버전에서는 말씀 하신 파일이 로딩이 되는게 소스보기에서 보입니다.)
그런데 아까는 압축 파일을 사용했는데도 에러가 났지요? 그건 무엇 때문인지 모르겠네요. 혹시 모바일에서 ZipperUpper! 애드온을 켜놓으셨나요?
압축 상태에서 왜 문제가 생기는지는 좀더 살펴봐야겠지만, 순정 상태의 XE에서는 괜찮은 것으로 보아 특정 애드온이나 모바일 레이아웃, 스킨 등과 충돌하는 것 같습니다.
$oContext->loadFile(array('./common/js/jquery.js', 'head', '', -110000), true);
$oContext->loadFile(array('./common/js/modernizr.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/x.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/URI.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/blankshield.min.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/common.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/js_app.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/xml2json.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/xml_handler.js', 'head', '', -100000), true);
$oContext->loadFile(array('./common/js/xml_js_filter.js', 'head', '', -100000), true);
이상하네요. XE는 마지막 숫자가 같으면 집어넣은 순서대로 정확하게 나오는데....
페이지에 포함된 스크립트 순서를 조정하거나 재압축하거나 그 밖에 어떤 형태로든 최적화를 시도할 만한 기능은 또 없나요? 예전에 아파치에 뭔가 추가해서 열심히 최적화하셨던 것으로 기억하는데요.
희한하네요. 목록에 있는 파일 10개 중 첫번째 -110000은 -120000으로, 2~5번째 -100000은 -110000으로 바꾸고 나머지 5개는 그대로 둬보세요. 강제로 한번 맞춰보죠...
이런부분이 있습니다. 레이아웃에서요.
그 부분이 문제일 수도 있지만, 만약 jquery.min.js뿐이라면 여전히 뭔가 이상해요. 코어에서 로딩하지 않는 xe.js도 중간에 막 껴있고, js_app.js 로딩 순서도 약간 다르고요.
최근 버전의 XE에서는 PC와 모바일 모두 대부분 동일한 스크립트들을 로딩해 주는데, 스마트폰 초창기에는 로딩 속도 때문에 모바일에서 일부 스크립트를 제외시켰기 때문에 모바일 레이아웃이나 스킨을 작성하시는 분들이 강제로 로딩하는 경우가 많습니다. 이게 순서가 약간씩 다른 것 같아요.
찾았습니다.
list.hmtl 파일에
{@ Context::addJsFile("./common/js/jquery.js", true, '', -100000) }
{@ Context::addJsFile("./common/js/js_app.js", true, '', -100000) }
{@ Context::addJsFile("./common/js/common.js", true, '', -100000) }
{@ Context::addJsFile("./common/js/xml_handler.js", true, '', -100000) }
{@ Context::addJsFile("./common/js/xml_js_filter.js", true, '', -100000) }
이렇게 많이 불러옵니다.
지워야 할 것 좀 알려주세요.
write_form, comment_form 쪽에 더 있을 가능성도 있습니다.
코어에 코드 누락 + 저희 스킨 문제네요. 누락된거 추가해서 일단 급한대로 제가 압축해서 운영하겠습니다.
아.. 수정된게 압축해서 사용하는 파일이 아니군요. 정신이 없네요 ㅋㅋ
도움 감사합니다.
일부 모바일 스킨에서 문제가 생긴다고 개발팀에 알려드려야겠네요.
라이믹스에서는 유주얼 서스펙트 5형제를 죄다 블랙리스트 걸어버렸습니다만
XE에서는 그것보다는 좀더 온건한(?) 해결책을 찾아야겠지요...
마지막으로 질문드릴게요. debug 모드를 해제하면 언급하신 두개 파일을 불러오지 않는건가요?
아.. xe.min.js 에 모두 합친거군요!
아까 압축파일에도 동일하게 누락된 거 아니냐고 물어보셔서 다시 확인해 봤는데 xe.min.js는 정상입니다. 엉뚱한 파일이 먼저 로딩되지만 않으면 이 파일 하나만 로딩되어도 괜찮아요.
아.. 여기도 조건문을 바꿔 보겠습니다.
debug 모드로 해놔서 그런지 조건은 의미가 없군요.
모바일에서 불러오는 부분이 압축파일에도 누락이 아니냐는 의견이었습니다.
1.8.45 버전이 배포되었네요.