【问题标题】:CSS file being ignored?CSS文件被忽略?
【发布时间】:2013-03-29 02:03:57
【问题描述】:

我的网站上有一个这样设置的联系页面;

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。

我该如何解决这个问题?

【问题讨论】:

  • 发布 .htaccess mod_rewrite 规则。这就是这里重要的事情。您很可能缺少RewriteCond %{REQUEST_FILENAME} !-f 之类的内容

标签: php html mod-rewrite


【解决方案1】:

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

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

在 cmets 中,Michael 也是正确的,您可能有重写规则错误,因此请将该信息添加到您的问题中。

【讨论】:

  • 原来是这样的,很好的解释,希望能给你加分!
【解决方案2】:

使用以/开头的绝对网址:

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

【讨论】:

    猜你喜欢
    • 2016-05-07
    • 1970-01-01
    • 1970-01-01
    • 2013-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-22
    • 1970-01-01
    相关资源
    最近更新 更多