2011-06-19 15 views
7

Próbuję użyć obrazu tła w CSS, ale mimo że podałem pełną ścieżkę obrazu, to nie działa. Firebug pokazuje "Nie udało się załadować podanego adresu URL". Jestem pewien, że w tym folderze nie ma problemu z uprawnieniami. Moja klasa CSS toAdres URL obrazu tła CSS nie załadowany

body { 
background: url("H:/media/css/static/img/sprites/buttons-v3-10.png") repeat-x scroll left -800px #DCDCDC; 
color: black; 
font: 13px/1.2em arial,helvetica,clean,sans-serif; 
height: 100%; 
position: relative; 
} 

Co może być przyczyną problemu?

Odpowiedz

23

Używasz lokalnej ścieżki. Czy to naprawdę chcesz? Jeśli tak jest, trzeba użyć file:/// prefix:

file:///H:/media/css/static/img/sprites/buttons-v3-10.png 

oczywiście, to będzie działać tylko na komputerze lokalnym.

Również w wielu nowoczesnych przeglądarkach działa to tylko wtedy, gdy sama strona znajduje się również na ścieżce pliku lokalnego. Adresowanie lokalnych plików ze zdalnych (http://, https://) stron zostało szeroko wyłączone ze względów bezpieczeństwa.

9

lokalizacja źródłowy powinien być adres URL (w stosunku do pliku css lub pełnej lokalizacji internetowej), a nie system plików pełna ścieżka, na przykład:

background: url("http://localhost/media/css/static/img/sprites/buttons-v3-10.png"); 
background: url("static/img/sprites/buttons-v3-10.png"); 

Alternatywnie, można spróbować użyć file:/// protokołu prefiks.

10

Wiem, że to jest naprawdę stare, ale i tak zamieszczam moje rozwiązanie, odkąd Google znajdzie ten wątek.

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

To właśnie robię. Dwie kropki oznaczają odwiercić jeden katalog bliżej katalogu głównego "..", a drugi "." powinno oznaczać zacząć od miejsca, w którym jesteś, tak jakby był root. Miałem podobne problemy, ale dodałem, że naprawiłem to dla mnie. Możesz nawet opuścić "." w nim podczas przesyłania do hosta, ponieważ powinno działać dobrze , o ile konfiguracja katalogu jest dokładnie taka sama.

Powiązane problemy