답변:
footer블록은 머리처럼 직접 JS에 대한 지원을 제공하지 않습니다.
그러나 before_body_end템플릿 또는 텍스트 블록으로 원하는 모든 것을 추가 할 수 있는 이름의 블록이 있습니다.
자신의 템플릿과 블록 유형에 대해 생각 Mage_Page_Block_Html_Head하고 @Dexter가 권장하는 것을 사용할 수 있습니다.
아니요, 다음과 같은 것이 필요합니다. page / html_head 블록도 없습니다.
<!-- get the block which we want our content in -->
<reference name="before_body_end">
<!-- add another block of type page/html_head to have all the great functionality to add/remove css and js stuff -->
<!-- it is important to set your own template, because the head block has a defined default template page/head.phtml which has all the stuff of the head. Using this will bring a lot of problems -->
<block type="page/html_head" name="scripts_in_footer" template="YOUR TEMPLATE">
<!-- add whatever you want as you are used to in the head via the standard magento api -->
<action method="addItem"><type>skin_css</type><name>css/styles.css</name></action>
</block>
</reference>
템플릿 내부에는 다음이 필요합니다.
<?php // and to echo the whole stuff later in the template, you need to add the code, so the added js/Css files are echoed ?>
<?php echo $this->getCssJsHtml() ?>
<?php echo $this->getChildHtml() ?>
머리글 및 바닥 글 부분이 magento의 페이지 모듈로 렌더링됩니다. 머리글 및 바닥 글 템플릿을 보려면
app / design / frontend/ <your_package> /<your_theme> /template / page / html / footer.phtml
페이지 폴더의 다른 파일도 살펴보십시오. header.phtml각 페이지의 렌더링 헤더 섹션을 확인할 수 있습니다 . head.phtmlmagento의 모든 페이지에 적용 할 수있는 js 및 css 파일을 추가하는 데 사용합니다.
페이지 폴더의 파일도 참조하십시오. 해당 파일은 특정 페이지의 레이아웃 사양에 따라 각 페이지에 렌더링됩니다.
이 모듈에 대해 진지하게 연구하십시오. 많은 도움이 될 것입니다.
편집하다
page.xml을 통해 CSS와 js를 추가 할 수 있습니다. 나는 그것이 당신의 문제를 해결할 것이라고 생각합니다. 이동
app / design / frontend/ <your_package> /<your_theme> / layout / page.xml
이 코드 스 니펫을에 추가 defeault handle하십시오 (이 핸들에 추가 된 많은 js 및 css 파일을 볼 수 있습니다. 해당 코드 아래 에이 코드를 추가하십시오)
//this will add your js
<action method="addItem">
<type>skin_js</type>
<name>js/yourjsfile.js</name>
</action>
//this will add your css file
<action method="addItem">
<type>skin_css</type>
<name>js/yourcssfile.css</name>
</action>
그게 다야. 이제 사용자 정의 js 및 css 파일이 위치에 있는지 확인하십시오
skin/frontend/<your_package> /<your_theme>/js/yourjsfile.js
skin/frontend/<your_package> /<your_theme>/css/yourcssfile.css
당신의 일에 행운을 빕니다.
<action method="addItem"> <type>skin_js</type> <name>js/yourjsfile.js</name> </action>는 바닥 글이 아닌 <head>에 JS를 추가합니다 !!!
XML을 사용하십시오. 바닥 글에 J를 추가하려면 바닥 글 참조를 호출하십시오. 코드는 다음과 같습니다
<reference name="footer">
<action method="addJs"><script>js/file.js</script></action>
</reference>
스킨 폴더에 JS를 추가하려면 다음 코드를 사용할 수 있습니다
<reference name="footer">
<action method="addItem"><type>skin_js</type><name>js/test.js</name></action>
</reference>
CSS를 추가하려면 다음 XML 코드를 사용할 수 있습니다
<reference name="footer">
<action method="addCss"><stylesheet>css/layout.css</stylesheet></action>
</reference>
또는 당신은 또한 사용할 수 있습니다
<reference name="footer">
<action method="addItem"><type>skin_css</type><name>css/styles.css</name></action>
</reference>
자바 스크립트의 경우 onload 또는 jquery의 $ (document) .ready () 사용을 고려 했습니까?
그러면 일반적인 설정처럼 헤더에 코드를 배치 할 수 있지만 js가 참조하는 내용이로드 될 때까지 코드를 실행하지 마십시오.
js filename.js 코드는 다음과 같습니다.
$(document).ready( function(){
your custom js here
});
레이아웃 코드는 다음과 같습니다. (설정 한대로 적절한 디렉토리를 추가해야합니다.)
<reference name="head">
<action method="addItem"><type>js</type><name>js/jquery/jquery.js</name></action>
<action method="addItem"><type>js</type><name>js/filename.js</name></action>
</reference>
예. 한 가지 방법이 있지만 아래처럼 코드를 통해 추가해야합니다.이 코드는 <body>태그 끝 바로 전에 1column.phtml 파일의 맨 아래에 추가하십시오 .
<script src="<?php echo $this->getSkinUrl('js/jquery.noConflict.js') ?>"></script>
자바 스크립트 (및 CSS)를 최적화하고 Google pagespeed 통계 순위를 개선하는 데 도움이되는 mediarox pagespeed 모듈을 적극 권장합니다.
Magento의 html 출력을 구문 분석 한 다음 코드에서 잘라 내기 및 붙여 넣기 작업을 수행하여 javascript를 html 코드의 맨 아래로 이동합니다. 프로세스는 빠르지 만 HTML 변경 사항을 캐시하기 위해 전체 페이지 캐시와 함께 사용하는 것이 가장 좋습니다.
이 모듈의 작동 방식에 대한 자세한 정보는 페이지 속도 순위를 개선하는 데 도움이 될 수 있습니다.
http://blog.gaiterjones.com/magento-google-pagespeed-jscsshtmlminify-optimisation/