包含CSS不加载图像和字体

时间:2013-11-20 22:41:57

标签: php css .htaccess

我已经创建了一个动态的CSS加载器,它运行正常,但它没有加载CSS ImagesFont-Faces!关于这种情况的任何想法?

我的CSS加载程序代码:

<?php
    $mainRoot = realpath($_SERVER["DOCUMENT_ROOT"]);
    ob_start("ob_gzhandler");
    // Set desierd header for Content-Type
    header("Content-type: text/css; charset: UTF-8");
    header("X-Content-Type-Options: nosniff");
    // Load Core Css
    include $mainRoot . '/css/site-style.css';
?>

我将上述脚本称为以下文件,同时我通过css_loader.php重写规则将css_loader.css重命名为htaccess

<link type="text/css" href="mysite/css_loader.css" rel="stylesheet">

3 个答案:

答案 0 :(得分:2)

问题可能是图像是使用其相对路径的引用。 即:

background-image: url('../images/header.jpg');

当您使用加载程序时 - 浏览器将使用新的css路径,即:mysite / css_loader.css作为这些图像路径的基础。

如果可以..将css中的图像路径更改为绝对链接,如

background-image: url('/assets/images/header.jpg');

答案 1 :(得分:1)

如果此css用于其他目的,则链接可能与/ css /相关。因为你已经将它包含在你的php中,它现在看起来像一个内部样式表,浏览器现在看起来相对于html页面的url(可能不是/ css /.)

答案 2 :(得分:1)

我尝试将一个静态css文件放在mysite目录中。

看起来CSS文件中的相对路径存在问题。

在静态文件中,您可以尝试包含/省略mysite/css/部分或预先../的所有组合。

您还可以打开网络流量分析器(如Firefox中集成的网络工具中的那个)并查看浏览器尝试加载的文件。通过这种方式,您可以观察浏览器真正尝试下载的文件,并相应地更改CSS文件中的相对路径。