【问题标题】:Implementing Pjax on a common header footer coding structure在通用页眉页脚编码结构上实现 Pjax
【发布时间】:2013-12-17 13:11:25
【问题描述】:

我正在使用具有通用页眉和页脚的 codeigniter 开发一个项目。通过使用 pjax,我能够单独动态更改内容,而不会干扰页眉和页脚。 url也随着控制器的变化而变化。以下是我对 url 和 SEO 类比的担忧。

我的默认主页控制器加载页眉、索引页和页脚,如下所示。

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 中加载相应的控制器路径(例如 - http://domain.com/main/bandDirectory),并且仅 pjax 内容 div 被内容替换/更新,而页眉和页脚保持不变。

public function bandDirectory(){
    $this->load->model('dbmodel');
    $data['content'] = $this->dbmodel->band();
    $this->load->view('includes/bandDirectory',$data);
}

当菜单项从主页导航时,这很好用,因为它最初加载页眉和页脚。但是如果我们直接点击 url(比如http://domain.com/main/bandDirectory)会怎样。此控制器不包含页眉和页脚,它仅加载将页面分开的内容!如果搜索引擎索引这些网址,这将成为一个严重的问题。如何克服这个问题?

P.S : 由于我在页眉中实现了一个播放器,我不想在所有控制器中包含页眉和页脚,因为这会在页眉刷新时阻止播放器播放。

【问题讨论】:

    标签: php jquery ajax codeigniter pjax


    【解决方案1】:

    我在我们的项目中所做的是在请求中查找 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 中实现同样的功能

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-02
    • 2015-06-26
    • 2012-12-30
    • 1970-01-01
    • 2012-12-10
    • 2015-06-04
    • 1970-01-01
    • 2023-04-09
    相关资源
    最近更新 更多