1

http://example.com/mvc/login/requestsExceededurl がの場合、Style.css は実行されません。

しかし、それは私のログインインデックスページで行います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
からスラッシュを
削除する -index.php に 301 をリダイレクトする
-redirect http://example.com/mvc/homeindex.php に、

助けていただければ幸いです!

4

1 に答える 1

5

インポートを次のように変更します

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

サイトのどこからでも同じリンクを機能させたい場合は、パスを絶対パスにすることをお勧めします。つまり、/.

于 2013-03-28T14:37:53.270 に答える