我试图实现一个简单的前端控制器在php..In my index.php;
$parts = array_slice(explode('/',$_SERVER["REQUEST_URI"]),3);
if(file_exists($parts[0].'.php'))
include $parts[0].'.php';
else
echo 'not found';
所以我输入地址栏localhost/myroot/index.php/home,我希望包含home.php。它包括home.php,但没有外部css文件和javascript源。
在home。,
<link rel="stylesheet" type="text/css" href="styles/master.css" />
<script type="text/javascript" src="scripts/master.js"></script>
根目录有样式和脚本目录myroot/风格/master.cssmyroot/脚本/master.js
所以如果我输入localhost/myroot/home.php,它可以正常工作
停止在你的CSS和JS中使用相对url
关于teresko的回答…
浏览器不知道(或不关心)你的url是什么形式。当你为CSS和JavaScript使用相对路径时,它希望它们是相对于最后一个目录的。
所以,如果你的页面在/somecontroller/somepage/someparamater
,而你引用/scripts/master.js
,那么浏览器将请求/somecontroller/somepage/someparameter/scripts/master.js
。
解决方案是简单地在这些路径前面放置一个/
,以便它们相对于站点根。