当我在URL中放置一个方法时,网站不会加载CSS或JS

时间:2017-12-13 16:27:53

标签: php html .htaccess

我有一个文件,从URL获取控制器和方法,当url中只有控制器它工作正常,但如果我将方法添加到URL它不会加载CSS或任何JS文件正确。

这是项目的文件夹。

enter image description here

这是.htaccess文件

     <IfModule mod_rewrite.c>
     Options +FollowSymLinks
     RewriteEngine on
     # Send request via index.php
     RewriteCond %{REQUEST_FILENAME} !-f
     RewriteCond %{REQUEST_FILENAME} !-d
     RewriteRule ^(.*)$ index.php/?url=$1 [L]
     </IfModule>

这是索引文件

    class url{
    public $controller = "home";
    public $method = "default";
    public $params = array();
    function __construct(){
    $url = $this->getUrl();
    if (file_exists("../app/controller/".$url[0].".php")){
   $this->controller = $url[0];
   unset($url[0]);
}
require_once("../app/controller/".$this->controller.".php");
$this->controller = new $this->controller();

if(isset($url[1])){
   if(method_exists($this->controller,$url[1])){
       $this->method = $url[1];
       unset($url[1]);
   }
$this->params = $url ? array_values($url): [];

}
call_user_func([$this->controller,$this->method],$this->params);
}



function  getUrl(){
if (isset($_GET["url"])){
$url = explode("/",$_GET["url"]);
return $url;
}
}
}
$url = new url();

这是控制器

 class home{
function __construct(){

    echo "hola";
}
function default(){
    require_once("../app/views/home.php");
}
}

这是视图

<head>
<link href="css/style.css" rel="stylesheet" type="text/css">

</head>

<body>
<h1>Hey</h1>

</body>

1 个答案:

答案 0 :(得分:0)

href="css/style.css"

你有一条相对路径。

浏览器将获取URL,从中删除查询和片段。删除最后/之后的所有内容。然后追加路径。

您需要一个绝对路径,从/开始。

href="/css/style.css"

浏览器将从当前URL中删除整个路径。不仅是最后一个/之后的部分。