2010-08-29 87 views
0

我剛搬到我的網站到另一臺服務器,我使用Smarty的模板,得到這個錯誤消息請Smarty的模板錯誤幫助

http://bit.ly/5MZu2A

這裏是智者文件的一部分:

/** 
* DIR_SEP isn't used anymore, but third party apps might 
*/ 
if(!defined('DIR_SEP')) { 
    define('DIR_SEP', DIRECTORY_SEPARATOR); 
} 

/** 
* set SMARTY_DIR to absolute path to Smarty library files. 
* if not defined, include_path will be used. Sets SMARTY_DIR only if user 
* application has not already defined it. 
*/ 

if (!defined('SMARTY_DIR')) { 
    define('SMARTY_DIR', dirname(__FILE__) . DIRECTORY_SEPARATOR); 
} 

if (!defined('SMARTY_CORE_DIR')) { 
    define('SMARTY_CORE_DIR', SMARTY_DIR . 'internals' . DIRECTORY_SEPARATOR); 
} 

define('SMARTY_PHP_PASSTHRU', 0); 
define('SMARTY_PHP_QUOTE',  1); 
define('SMARTY_PHP_REMOVE',  2); 
define('SMARTY_PHP_ALLOW',  3); 

/** 
* @package Smarty 
*/ 
class Smarty 
{ 
    /**#@+ 
    * Smarty Configuration Section 
    */ 

    /** 
    * The name of the directory where templates are located. 
    * 
    * @var string 
    */ 
    var $template_dir = 'templates'; 

    /** 
    * The directory where compiled templates are located. 
    * 
    * @var string 
    */ 
    var $compile_dir  = 'templates_c'; 

    /** 
    * The directory where config files are located. 
    * 
    * @var string 
    */ 
    var $config_dir  = 'configs'; 

    /** 
    * An array of directories searched for plugins. 
    * 
    * @var array 
    */ 
    var $plugins_dir  = array('plugins'); 

這裏是我的網站和smarty文件的路徑

/home/cd/public_html 

/home/cd/public_html/smarty/Smarty.class.php 
+0

這是錯誤的地方問這個問題? – 2010-08-29 15:02:34

回答

0

你應該把PHP代碼發佈到你設置smarty對象的地方 - 你應該聲明與默認值不同的路徑。

也能正常工作對我來說:

$smarty = new Smarty; 
$smarty->template_dir = "./templates" ; 
$smarty->compile_dir = "./templates_c" ; 
$smarty->cache_dir = "./cache" ; 
$smarty->config_dir = "./includes"; 

所在的路徑與所述文件夾是相對於調用腳本,即使你把它放在一個包含文件。

+0

另外,確保文件夾和模板文件確實存在並且可讀。 – djn 2010-08-29 18:21:55

+0

文件權限設置正確我已經檢查了這麼多次,這不是問題 我認爲問題是在路徑中。 – 2010-08-30 11:59:18

0

絕對路徑應該是防錯,我想:

require '/home/cd/public_html/smarty/Smarty.class.php'; 
$smarty = new Smarty; 
$smarty->template_dir = "/home/cd/public_html/themes/default/templates" ; 
$smarty->compile_dir = "/home/cd/public_html/themes/default/templates_c" ; 
$smarty->cache_dir = "/home/cd/public_html/themes/default/cache" ; 
$smarty->config_dir = "/home/cd/public_html/themes/default/includes"; 

,只要你有一個cacheinclude文件夾中有(你可以隨意更改自己的名字,或者把它們放在別的地方)。收藏此而制定的掛鉤:

$smarty->debugging = true; 

發送智者變量的完整列表的彈出頁面(您可能需要允許該瀏覽器的彈出窗口阻止程序)。

0

你根本不需要改變Smarty.class.php。您可能在index.php中有一個類似$smarty = new Smarty()的聲明,您應該在其中找到$smarty->template_dir = "path_to_your_dir";

0

我固定它,至少我的託管公司做

的問題是從數據庫中,智者是用從其他託管公司,我從太感動了,我需要更新路徑前面的路徑。

謝謝!