CSS文件被忽略了吗?

时间:2013-03-28 17:58:08

标签: php html mod-rewrite

我的网站上的联系页面设置如下;

contact.php

<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="webpage.css">
        <?php include 'header.php'; ?>
    </head>
...rest of content

我最近设置了一个带有一些mod_rewrite更改的htaccess页面。

所以现在,我有像

这样的网址
www.example.com/user

www.example.com/user/contact

当我查看www.example.com/user/contact时,无法识别CSS并且该页面不会打印任何我的div,而只会显示一些措辞内容。

所以,如果我有

<div id="userinfo">
    User info
</div>

它只显示页面左侧的“用户信息”,而不识别div。

如何解决此问题?

2 个答案:

答案 0 :(得分:1)

使用从/开始的绝对网址:

<link rel="stylesheet" href="/webpage.css" />

答案 1 :(得分:1)

CSS中的href是相对链接。因此,对于www.example.com/user,浏览器将在www.example.com/webpage.css上请求css文件,但是对于www.example.com/user/contact,它将要求www.example.com/ 用户 /webpage.css

这可能会导致您的部分问题,并且可以通过在您的href之前加上/,href="/webpage.css"来解决。 /将导致浏览器始终从您域的根目录请求,因此无论您使用哪个页面,它都将始终请求www.example.com/webpage.css。如果您的css位于DocumentRoot中的某个文件夹中(我假设您在此处使用Apache),那么您应该从doc根的开头提供该文件的完整路径,这可能类似于href="/css/webpage.css"

在评论中,Michael也是正确的,您可能会有重写规则错误,所以请将该信息添加到您的问题中。