[英]Extend template for js inclusion
我有一個網絡項目。 該項目基於Smarty模板。 對於網站的所有頁面,我都有一個具有通用結構的base.tpl。
base.tpl下一行,即包含用戶請求的模板:
{include file="{$request}"}
例如。 當用戶請求http://mydomain/contact
,$ request具有“ contact.tpl”值。
基本模板的底部包含commons js文件:
{block name="javascript"}
<script src="{$BASE_URL}/assets/js/libs/jquery-1.10.2.min.js"></script>
<script src="{$BASE_URL}/assets/bootstrap/js/bootstrap.min.js"></script>
<script src="{$BASE_URL}/assets/js/common.js"></script>
{/block}
因此,用戶請求的任何模板都需要包含mores javascript文件,我喜歡在“ javascript”塊中插入這些文件。
我嘗試例如在contact.tpl中輸入以下代碼:
{block name="javascript" prepend}
<script src="{$BASE_URL}/assets/js/libs/validation/jquery.validate.js"></script>
<script src="{$BASE_URL}/assets/js/libs/validation/localization/messages_es.js"></script>
<script src="{$BASE_URL}/assets/js/contact.js"></script>
{/block}
但是,文件不會加載到瀏覽器中。 有任何想法嗎 ?。
這不是它的工作方式,不能僅通過包含文件來處理塊。 應該是這樣的:
base.tpl:
<html>
<head>
{block name="javascript"}
<script src="{$BASE_URL}/assets/js/libs/jquery-1.10.2.min.js"></script>
<script src="{$BASE_URL}/assets/bootstrap/js/bootstrap.min.js"></script>
<script src="{$BASE_URL}/assets/js/common.js"></script>
{/block}
</head>
<body>
{block name="contents"}{/block}
</body>
</html>
contact.tpl:
{extends file="base.tpl"}
{block name="javascript" prepend}
<script src="{$BASE_URL}/assets/js/libs/validation/jquery.validate.js"></script>
<script src="{$BASE_URL}/assets/js/libs/validation/localization/messages_es.js"></script>
<script src="{$BASE_URL}/assets/js/contact.js"></script>
{/block}
{block name="contents"}
Your contact form here
{/block}
檢查Smarty的模板繼承以獲取更多信息
我有一種為我服務的方法。 我在控制器(php腳本)中以數組形式定義了js的路徑。 在tpl中,迭代“路徑數組”並包括文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.