Php 在公共页眉-页脚编码结构上实现Pjax
我正在开发一个使用codeigniter的项目,它有共同的页眉和页脚。通过使用pjax,我能够单独动态更改内容,而不会干扰页眉和页脚。此外,url也会随着控制器的变化而变化。下面是我对url和SEO类比的关注 我的默认主页控制器加载页眉、索引页和页脚,如下所示Php 在公共页眉-页脚编码结构上实现Pjax,php,jquery,ajax,codeigniter,pjax,Php,Jquery,Ajax,Codeigniter,Pjax,我正在开发一个使用codeigniter的项目,它有共同的页眉和页脚。通过使用pjax,我能够单独动态更改内容,而不会干扰页眉和页脚。此外,url也会随着控制器的变化而变化。下面是我对url和SEO类比的关注 我的默认主页控制器加载页眉、索引页和页脚,如下所示 public function index(){ $this->load->model('dbmodel'); $data['about'] = $this->dbmodel->about();
public function index(){
$this->load->model('dbmodel');
$data['about'] = $this->dbmodel->about();
$this->load->view('templates/header',$data);
$this->load->view('includes/index',$data);
$this->load->view('templates/footer');
}
假设我单击一个菜单项,它加载url中相应的控制器路径(比如-),pjax内容div单独被替换/更新为内容,而页眉和页脚保持不变
public function bandDirectory(){
$this->load->model('dbmodel');
$data['content'] = $this->dbmodel->band();
$this->load->view('includes/bandDirectory',$data);
}
当菜单项最初加载页眉和页脚时,从主页导航菜单项时,这种方法可以很好地工作。但是如果我们直接点击url(比如说),会怎么样呢。此控制器不包含页眉和页脚,它只加载将页面分开的内容!如果搜索引擎索引这些URL,这将成为一个严重的问题。如何克服这个问题
注:由于我在页眉中实现了一个播放器,我不想在所有控制器中都包含页眉和页脚,因为这样会在页眉刷新时阻止播放器播放。我在项目中做的是在请求中查找pjax页眉,如果pjax头存在,则只加载内容模板,否则加载完整模板,这是我在perl中的相应代码,希望对您有所帮助
sub tour {
my $self = shift;
return $self->render(
template => 'static/tour',
layout => $self->req->headers->header('X-PJAX') ? 'content_header' : 'full_width',
);}
您可以在php中实现相同的功能嘿……它成功了!不知何故,我在Pjax文档中遗漏了这个标题部分。下面的链接帮助我在php/codeigniter中实现。谢谢:)