我目前遇到了无胖框架的路由问题。在环顾四周并阅读文档之后,尽管它似乎是一个简单的问题,但到目前为止我还是无法解决它。
我使用的是根目录中的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允许响应。
谢谢和许多问候:)
答案 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。