thinkphp 生成静态资料 配置
www.MyException.Cn   发布于:2012-10-06 17:34:01   浏览:272次 0thinkphp 生成静态文件 配置
$this->buildHtml('hello', 'user/','index');
这样就在user目录下生产了  hello.shtml
还有缓存配置
顺便配置下生产 缓存 就是 点了 不是立即生成等到达一定时间自动生产静态页面 相当实用
在cofig.php 配置
if (!defined('THINK_PATH')) exit();
return array(
 'HTML_CACHE_ON'=>true,
 'HTML_CACHE_TIME'=>10,//时间单位是秒
 'HTML_READ_TYPE'=>0,
);
 
 
 
--------------------------
 
项目在c:/www/Tp/admin/
生成的静态文件 目标 c:/www/tp/html/
用到一个函数dirname 返回去除文件的路径  如 tp/dl/123.php  如果用dirname 的话返回的是绝对路径c:/tp/dl
index.php 入口文件配置
直说重要的
define('WEB_PATH', dirname(__FILE__) );
define('NO_CACHE_RUNTIME', true);//debug
 
config.php
项目配置 加上.htm
HTML_FILE_SUFFIX =>'.htm'
 
控制器中 我用的是map
function create(){
//echo THINK_PATH;
$path = dirname(WEB_PATH).'\HTML\\';
//$path = dirname(dirname(WEB_PATH).'\HTML');
echo $path;
$this->buildHtml('loves',$path,'index');
}
 
 
------------------------
 
1.UrlcreateAction放在Web项目
public function url_news_view(){
header("Content-Type:text/html; charset=utf-8");
$dirpath = dirname($_SERVER['SCRIPT_FILENAME']).'/Html/';//html根目录  最后一个/是必须的
$news = M('new');
$list = $news->select();
foreach($list as $var){
$id = $var['new_id'];$this->assign('data',$var);
var_dump($id);
$this->buildHtml("news/{$var['addtime']}",$dirpath,"Index:news_view");    
}}
对Index:news_view操作模板输出后的内容,生成静态页面

解决方案 »

  1.   

    只要执行 $this->buildHtml 就会生成静态页
    当然,你可能需要浏览一遍所有的连接
      

  2.   


    $this->buildHtml ,这个方法要怎么写才能每点击一个链接生成一个页面。  现在只能生成一个index页面
      

  3.   

    所有页面都点一遍, 那如果几万条...用wget -r 遍历一下看看行不行。windows下的话, 有offlineexplore之类的软件找找。