刚学 Smarty 遇到了文件加载的问题。下面是我做的网站文件的结构01是整个工程的名称,总目录以及相关的目录如下01--+--
|
+SmartyLibs // smarty的配置文件
|
+subitem // 一些加载 htm 的 php 程序
|
+templates // 被加载 htm 文件
我在subitem下面有个 informatics.php,这个要用 Smarty去加载一个 informatics.htm,这个文件位于templates下面。但是一加载就有问题了,下面是代码。
<?
......
$smarty->display("..\informatics.htm"); //这行有问题了
......
?>下面是 smarty 的配置文件<?
include_once("SmartyLibs/Smarty.class.php"); //包含smarty类文件
$smarty = new Smarty(); //建立smarty实例对象$smarty
$smarty->config_dir="Smarty/Config_File.class.php"; // 目录变量
$smarty->caching=false; //是否使用缓存,项目在调试期间,不建议启用缓存
$smarty->template_dir = "./templates"; //设置模板目录
$smarty->compile_dir = "./templates_c"; //设置编译目录
$smarty->cache_dir = "./smarty_cache"; //缓存文件夹
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}";
?>
|
+SmartyLibs // smarty的配置文件
|
+subitem // 一些加载 htm 的 php 程序
|
+templates // 被加载 htm 文件
我在subitem下面有个 informatics.php,这个要用 Smarty去加载一个 informatics.htm,这个文件位于templates下面。但是一加载就有问题了,下面是代码。
<?
......
$smarty->display("..\informatics.htm"); //这行有问题了
......
?>下面是 smarty 的配置文件<?
include_once("SmartyLibs/Smarty.class.php"); //包含smarty类文件
$smarty = new Smarty(); //建立smarty实例对象$smarty
$smarty->config_dir="Smarty/Config_File.class.php"; // 目录变量
$smarty->caching=false; //是否使用缓存,项目在调试期间,不建议启用缓存
$smarty->template_dir = "./templates"; //设置模板目录
$smarty->compile_dir = "./templates_c"; //设置编译目录
$smarty->cache_dir = "./smarty_cache"; //缓存文件夹
$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}";
?>
解决方案 »
- php-5.4.6是不是已经集成了fpm?怎么开启呢?在lnmp环境下.
- PHP的Socket如何与java的ServerSocketChannel通信
- 请求大家帮忙解决!--php初学者的头大问题
- 关于PHP调试环境配置的问题
- 为什么我的session在IE6中只有把"隐私"一项设为低才可以使用
- 怎么取得绝对路径?????
- PHP post数组的问题
- [PHP debug]html文件的某个post方法对应action=xx.php,却无法触发php中的断点
- 有一个这样的数组,如何遍历出每级别下面的username数量,级别有n级
- php如何把图片转换化成这样的格式?求高手指点
- discuz! x1.0怎么单独建一个文件判断用户是否登录
- php处理字符串
编译目录?你指的是 templates 这个目录下面吗?
你上面这一句已经设置路径了
$smarty->display("informatics.htm"); //加载的时候就直接写文件名就可以
不论你从哪调用,都相当于调用文件存放在templates文件夹里。
当然,最后运行的还是原文件的路径
就是这么写的,但是感觉还是不对,我的文件放在 01/subitem下面,跟我的php防止有关系么?
系统报错为:
Warning: Smarty error: unable to read resource: "informatics.htm" in C:\Www_local\01\SmartyLibs\Smarty.class.php on line 1095<?phpinclude_once("../smarty_inc.php");
include_once("../conn.php"); $pagecurrent = 0;
$pagetotal;
$pagesize = 10; if($_POST['submit']){
$user = $_POST['avatarName'];
$title = $_POST['title'];
$content = $_POST['content']; $sql="INSERT INTO chinese_informatics (id,avatarName,title,content,lastdate) " .
"values ('','$user','$title','$content','now()')"; $db->query("set names 'GBK'");
$rs = $db->query($sql); } $rs = $db->query("SELECT * FROM chinese_informatics");
$pagetotal = $rs->rowcount();
$c = 0;
$rs = $db->query("SELECT * FROM chinese_informatics LIMIT $c, 5");
echo $num; while( $row = $rs->fetch()){
//print_r($row);
$id = $row[id];
$avatarName = $row[avatarName];
$title = $row[title];
$content = $row[content];
$lastdate = $row[lastdate];
$MesContent[] = array("id"=>$id,"avatarName"=>$avatarNAme,"title"=>$title,"content"=>$content,"lastdate"=>$lastdate);
}
$smarty->assign("MesContent",$MesContent);
$smarty->display("informatics.htm");?>
就当前文件引用include_once("../smarty_inc.php");
是在你的上一级目录,而读取这个设置文件之后
include_once("SmartyLibs/Smarty.class.php"); //包含smarty类文件
它会给予当前文件的目录来查找rtyLibs/Smarty.class.php,显然是没有的。我这么理解的
我用过一次smarty出现了这样的问题,我当时也是这么思路解决的,在当前文件夹下新建一个smarty配置文件,内容为include_once("../smarty/Smarty.class.php"); //包含smarty类文件
$smarty = new Smarty(); //建立smarty实例对象$smarty
$smarty->config_dir="smarty/Config_File.class.php"; // 目录变量
$smarty->caching=false; //是否使用缓存,项目在调试期间,不建议启用缓存
$smarty->template_dir = "../templates"; //设置模板目录
$smarty->compile_dir = "../templates_c"; //设置编译目录
$smarty->cache_dir = "../smarty_cache"; //缓存文件夹$smarty->left_delimiter = "{";
$smarty->right_delimiter = "}";