我已经创建了一个动态的CSS加载器,它运行正常,但它没有加载CSS Images
和Font-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">
答案 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文件中的相对路径。