简单的前端控制器导致CSS和javascript在php中被破坏


simple front controller causes css and javascript broken in php

我试图实现一个简单的前端控制器在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

解决方案是简单地在这些路径前面放置一个/,以便它们相对于站点根。