.css文件没有执行

时间:2013-03-28 14:36:33

标签: php .htaccess

当网址为http://example.com/mvc/login/requestsExceeded

时,不会执行Style.css

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

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

  

mvc =子目录中的站点
  login = controller
  requestsExceeded = view

.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和图像文件,
- 从网址中删除正斜杠,
-redirect 301 to index.php,
-redirect http://example.com/mvc/home到index.php,

帮助将不胜感激!

1 个答案:

答案 0 :(得分:5)

将导入更改为

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

如果您希望相同的链接可以在您网站的任何位置使用,那么您最好让路径为绝对路径,即以/开头。