Smarty使用時にJavaScritpを別ファイルに書くときの読み込みパス
発端
- javascriptをjs専用のフィアルに書いてそれをSmartyで読み込みたかったがうまく読み込めずハマったので備忘録。
原因
- Smartyからのパスを書いていた。
解決方法
- そのテンプレートファイルを呼び出しているPHPからのパスを書く。
詳細
- ディレクトリ構造
test--
|-layout
| |_resource
| | |_javascript.js
| |_layout.tpl
|
|-module
| |_module.php
|
|-template_c
- module.phpでlayout.tplを読んで画面に表示させているとき、layoutに記述したinputタグの内容についてjavascriptで処理をしたいとする。
layout.tpl
<body>
<input id="input" type="text">
<p id ="text">HELLO WORLD</p>
<!--ここにファイルパスを書いて読み込み-->
<script src="../layout/resource/javascript.js"></script>
</body>
</html>
- module.phpから見ると一階層上のlayoutの中のresourceの中のjavascript.jsとなる。
- jQueryを使用する場合はheadタグ内にCDNを記載しておけば同じ処理で使用可能