2011-06-19 11 views
7

Tôi đang cố gắng sử dụng hình nền trong CSS nhưng mặc dù tôi đã cung cấp đường dẫn đầy đủ của hình ảnh nhưng nó không hoạt động. Firebug hiển thị "Không thể tải URL đã cho". Tôi chắc chắn rằng không có vấn đề về quyền trong thư mục đó. Lớp CSS của tôi làURL hình nền CSS không tải được

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; 
} 

Điều gì có thể gây ra sự cố?

Trả lời

23

Bạn đang sử dụng đường dẫn cục bộ. Đó có thực sự là điều bạn muốn không? Nếu có, bạn cần sử dụng tiền tố file:///:

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

hiển nhiên, điều này sẽ chỉ hoạt động trên máy tính cục bộ của bạn.

Ngoài ra, trong nhiều trình duyệt hiện đại, thao tác này chỉ hoạt động nếu trang đó cũng nằm trên đường dẫn tệp cục bộ. Việc giải quyết các tệp cục bộ từ các trang từ xa (http://, https://) đã bị vô hiệu hóa rộng rãi vì lý do bảo mật.

9

vị trí Nguồn nên là một URL (liên quan đến tập tin css hoặc toàn bộ web địa điểm), không phải là một hệ thống tập tin đường dẫn đầy đủ, ví dụ:

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

Ngoài ra, bạn có thể thử sử dụng file:/// giao thức tiền tố.

10

Tôi biết điều này thực sự cũ, nhưng tôi đang đăng anyways giải pháp của mình vì google tìm thấy chuỗi này.

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

Đó là những gì tôi làm. Hai dấu chấm có nghĩa là khoan lại một thư mục gần gốc hơn ".." trong khi một "." nên có nghĩa là bắt đầu từ nơi bạn đang ở như thể nó là gốc. Tôi đã có vấn đề tương tự nhưng thêm rằng cố định nó cho tôi. Bạn thậm chí có thể rời khỏi "." trong đó khi tải lên máy chủ lưu trữ của bạn vì nó sẽ hoạt động tốt miễn là thiết lập thư mục của bạn giống hệt nhau.