我有这个.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L]
</IfModule>
在我的index.php中,我有这个:
<!DOCTYPE HTML>
<?php
include "php/config.php";
include "php/RemoteAddress.php";
$remoteAddress = new RemoteAddress();
$ip = $remoteAddress -> getIpAddress(); // The clients ip address;
$tid = date( "Y-m-d_H-i-s" ); // A string representing the time
$fir = "hjem";
$sec = "";
$tot = isset( $_GET[ 'url' ] ) ? $_GET[ 'url' ] : "";
$tot = str_replace( "#", "", $tot );
$split = explode( "/", $tot );
if( isset( $split[0] ) && $split[0] !== "" ) $fir = $split[0];
if( isset( $split[1] ) && $split[1] !== "" ) $sec = $split[1];
if( $fir == "hjem" )
{
$page = "home.php";
}
else if( $fir == "regler" )
{
$page = "rules.php";
}
else if( $fir == "nyheter" )
{
$page = "news.php";
}
else if( $fir == "om" )
{
$page = "about.php";
}
else if( $fir == "kontakt" )
{
$page = "contact.php";
}
else
{
$page = "page_not_found.php";
}
include 'php/content/header.php';
echo "\n".' <div id="contents">'."\n";
include "php/content/".$page;
echo "\n".' </div>';
include 'php/content/footer.php';
?>
问题是如果我有网址localhost/hjem
它完美无缺,但如果我有localhost/hjem/
或localhost/hjem/info
,则浏览器不会加载css文件。
你们有人能告诉我为什么吗?我怎么解决这个问题?
编辑:
来自浏览器的源代码:
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Nordbyen</title>
<link rel="stylesheet" href="css/style.css" type="text/css">
</head>
<body>
<div id="header">
<div>
<div class="logo">
<a href="hjem"></a>
</div>
<ul id="navigation">
<li class="active">
<a href="hjem">Hjem</a>
</li>
<li>
<a href="regler">Regler</a>
</li>
<li>
<a href="nyheter">Nyheter</a>
</li>
<li>
<a href="om">Om</a>
</li>
<li>
<a href="kontakt">Kontakt</a>
</li>
</ul>
</div>
</div>
<div id="contents">
<style>
table {
border-spacing: 0;
border-collapse: collapse;
}
</style>
<div id="tagline" class="clearfix">
<h1>Nordbyen - Norsk Datafreak Forum</h1>
<div>
<p>
Jeg har startet på et nytt prosjekt, et norsk forum for forskjellige Java prosjekter.
</p>
<p>
Ideén bak dette er å skape et lite miljø for de norske som enten kan eller ønsker å lære <a href="http://no.wikipedia.org/wiki/Java_(programmeringsspr%C3%A5k)" target="_blank">Java</a>
</p>
<p>
Dette er bare startfasen, så jeg vet ikke hvordan dette vil bli, men håper på både en bra og inspirerende side samt mange aktive medlemmer
</p>
</div>
<div>
<p>
Han du tro på prosjektet og ønsker du å delta? Bli med å bygge opp og vedlikeholde prosjektet ved å kontakte ...:
</p>
<table>
<tr>
<td><p>Kontakt meg på:</p></td>
<td></td>
</tr>
<tr>
<td><p>Skype:</p></td>
<td><p>...</p></td>
</tr>
<tr>
<td><p>Facebook:</p></td>
<td><p>( <a href="https://www.facebook.com/..." target="_blank">...</a> )</p></td>
</tr>
<tr>
<td><p>Mail:</p></td>
<td><p>...</p></td>
</tr>
</table>
</div>
</div>
</div>
<div id="footer">
<div class="clearfix">
<p>
© 2014 .... All Rights Reserved.
</p>
</div>
</div>
</body>
</html>
答案 0 :(得分:2)
而不是css的相对url尝试绝对url。 我认为问题存在于相对地址中。
像这样:<link rel="stylesheet" href="http://yoursite.com/PATH_TO_CSS_FILE" type="text/css">
答案 1 :(得分:2)
您的css链接是&#34; css / style.css&#34;。这是一个相对网址。相对于什么?是的,它是相对于浏览器地址栏中的url。如果您访问localhost/hjem
,则前缀为localhost/
,您请求的页面为hjem
。当您访问localhost/hjem/
时,前缀为localhost/hjem/
。它试图加载localhost/hjem/css/style.css
,这显然是错误的。
您有两种选择:
/css/style.css
。这将相对于您的域的根加载它,在本例中为localhost/css/style.css
。<base href="/">
(mdn)。这将加载相对于基本标记的href元素的任何相对URL,从而加载localhost/css/style.css
。