2013-11-20 32 views
0

我創建了一個動態CSS加載器,它工作正常,但沒有加載CSS ImagesFont-Faces!有關這種情況的任何想法?包含的CSS未加載圖片和字體

我的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.phpcss_loader.css通過htaccess重寫規則。

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

我的第一個猜測是該腳本正在尋找錯誤的目錄。所以從那以後它就是在爲我猜測,但從看起來看,CSS的根是網站的根源,因此所有路徑都應該與此相關。但爲了測試,您可以在相關位置放置一些測試圖像(所有不同的文本都在這些測試圖像中),給它們所有相同的名稱並查看加載了哪個圖像。 – rolfv1

+0

你的重寫規則是什麼? –

回答

2

問題可能是圖像是使用其相對路徑的引用。 即:

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

當您使用裝載機 - 瀏覽器將使用新的CSS路徑,即:mysite的/ css_loader.css爲基準,爲這些圖像路徑。

如果你能..改變你的CSS成像路徑要像

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

這解決了我的問題,謝謝 – iSun

1

絕對鏈接如果這個CSS是用於其他目的,鏈接是相對於/ CSS /可能。因爲你已經將它包含在你的php中,它現在看起來像一個內部樣式表,現在瀏覽器將看起來相對於html頁面的url(很可能不是/ css /)。

1

我想嘗試將靜態目錄mysite中的css文件。

看起來您在CSS文件中存在相對路徑問題。

在靜態文件,你可以嘗試,包括/省略mysite/css/一部分,或者前面加上../的所有組合。

您還可以打開網絡流量分析器(如Firefox中集成的網絡工具中的網絡流量分析器),並查看瀏覽器嘗試加載的文件。通過這種方式,您可以觀察瀏覽器真正嘗試下載哪些文件,並適當地更改CSS文件中的相對路徑。