无脂php无效路由

时间:2016-06-24 17:56:44

标签: php fat-free-framework

我目前遇到了无胖框架的路由问题。在环顾四周并阅读文档之后,尽管它似乎是一个简单的问题,但到目前为止我还是无法解决它。

我使用的是根目录中的f3标准路由格式:

$f3->route(array('GET /', 'GET /index.php'), function($f3) {
    include 'header.html';
    include 'Home/index.html';
    include 'footer.html';
});

//search
$f3->route('GET /Browse', function() {
    include 'Browse/index.html';
});

这些路线都能正常工作并且符合预期。当我在xammp上输入localhost时,都返回概述的页面。两者都有文件结构:

-Root
-index.php
-header.html
-footer.html
--Browse
---index.html

在定义新路线后,我不希望有一个带有index.html文件的文件夹,而是通过回显html来响应。

$f3->route('GET /Latest',
    function() {
        include 'submit/index.html';
        echo 'This is our home page.';
    }
);

当我使用上面的代码,并转到localhost / Latest I' m出现时:

Error 404 : Not found

我的问题是如何在没有后续文件夹和index.html文件的情况下直接从PHP允许响应。

谢谢和许多问候:)

1 个答案:

答案 0 :(得分:1)

您可能正在寻找框架template engine

构建代码有多种方法,但这是一个快速的基本示例:

// index.php

$f3->UI='templates/';

$f3->route('GET /home',function($f3){
    $f3->main='home.html';
    $f3->title='Homepage';
    $tpl=Template::instance();
    echo $tpl->render('layout.html');
});

$f3->route('GET /contact',function($f3){
    $f3->main='contact.html';
    $f3->title='Contact us';
    $f3->address='5578 Grant Street Woodbridge, VA 22191';
    $tpl=Template::instance();
    echo $tpl->render('layout.html');
});
<!-- templates/layout.html -->
<!DOCTYPE html>
<title>{{ @title }}</title>

<body>
  <include href="header.html"/>
  <main>
    <include href="{{ @main }}"/>
  </main>
  <include href="footer.html"/>
</body>
<!-- templates/home.html -->
<h1>Hey hey! Welcome home!</h1>
<!-- templates/contact.html -->
<h1>Our address</h1>
<p>{{ @address }}</p>

至于404错误,请确保正确配置了.htaccess文件,尤其是RewriteBase指令。如果不是,则/以外的每个URI都会抛出404.有关设置的更多详细信息,请参阅here