1

当 url 为时 Style.css 不会执行http://example.com/mvc/login/requestsExceeded

但它确实在我的登录索引页面中http://example.com/mvc/login

如果我添加正斜杠http://example.com/mvc/login/,那么它也不起作用。

mvc = 子目录中的站点
login = 控制器
requestsExceeded = 查看

.css 文件位于http://www.example.com/mvc/views/themes/default/style.css

文件路径没问题,因为我试过这样:

<?php if(file_exists("views/themes/{$theme}/style.css")) echo 'TEST'; ?>
<link href="views/themes/<?=$theme;?>/style.css" type="text/css" rel="stylesheet" />

它确实回显了 TEST。

这是我的简化路由器:

<?php

$controller = "Index";
$action = "index";
$query = null;

if (isset($_GET['load']))
{
    $params = array();
    $params = explode("/", $_GET['load']);

    $controller = ucwords($params[0]);

    if (isset($params[1]) && !empty($params[1]))
    {
        $action = $params[1];
    }

    if (isset($params[2]) && !empty($params[2]))
    {
        $query = $params[2];
    }
}
$modelName = $controller;
$controller .= 'Controller';

$load = new $controller($modelName, $action);

if (method_exists($load, $action))
{
    $load->{$action}($query);
}
else 
{
    die('Invalid method. Please check the URL.');
}

我很确定这是由 .htaccess 文件引起的:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?load=$1 [PT,L]

-我想限制所有访问,除非 index.php...,
-允许访问 .css、.gz、.js 和图像文件,-
从 url 中删除正斜杠,
-redirect 301 到 index.php,
-redirecthttp://example.com/mvc/home到 index.php,

帮助将不胜感激!

4

1 回答 1

5

将您的导入更改为

<link href="/mvc/views/themes/<?=$theme;?>/style.css" type="text/css" rel="stylesheet" />

如果您希望在站点的任何位置都可以使用相同的链接,那么您最好让路径是绝对的,即以/.

于 2013-03-28T14:37:53.270 回答