2011-08-12 51 views
31

Tôi có một biểu định kiểu nơi tôi bao gồm hình nền.Thư mục gốc CSS

background: url(../Images/myImage.png); 

vấn đề là, các trang từ các thư mục khác nhau sử dụng css này!

Tệp CSS của tôi nằm trong thư mục CSS, hình ảnh trong thư mục Hình ảnh và các trang html của tôi nằm trong nhiều thư mục khác nhau tùy thuộc vào nội dung và ý nghĩa của trang web.

Tất cả các trang của tôi kế thừa css này vì nó là chủ đề CHÍNH.

Đường dẫn được sử dụng trong ví dụ trên là đường dẫn tương đối. Và rõ ràng, con đường này chỉ hoạt động đối với một số trang. Tất cả tôi cần là để liên kết các hình ảnh trong css từ thư mục ROOT. Do đó mọi đường dẫn đều chính xác cho dù tệp ở đâu trong cấu trúc thư mục!

Tôi đã thử:

~/Images/myImage.png 
./Images/myImage.png 
/Images/myImage.png 
Images/myImages.png 

Tôi không nghĩ rằng một chọn thư mục gốc tồn tại ... nhưng tôi hy vọng nó:/

+0

Chỉ cần sử dụng đường dẫn tuyệt đối mọi lúc, tức là. http://example.com/Images/myImage.png – benhowdle89

+2

Không cần đường dẫn tuyệt đối, đây không phải là vấn đề với biểu định kiểu *** bên ngoài vì đường dẫn luôn liên quan đến bản định kiểu. Thay vào đó, bạn có đặt mã CSS trực tiếp vào '' không? –

+0

@ benhowdle89 không, bởi vì khi bạn thay đổi tên miền hoặc đặt nó trong một tên miền phụ, mọi thứ đều bị hỏng. Tôi thích phương thức '/ path' hơn. – jackJoe

Trả lời

41
/Images/myImage.png 

này có được trong thư mục gốc của bạn miền/tên miền phụ

http://website.to/Images/myImage.png

và nó sẽ làm việc

Tuy nhiên, tôi nghĩ rằng nó sẽ làm việc như thế này, quá

  • hình ảnh
    • yourimage.png
  • phong cách
    • style.css

style.css:

body{ 
    background: url(../images/yourimage.png); 
} 
+0

điều này chỉ hoạt động nếu trang web của bạn được lưu trữ? Tôi hiện đang sử dụng studio hình ảnh 2010 để gỡ lỗi trang web của mình trước khi tải lên. –

+1

@ AlexMorley-Finch: Tôi không biết. Có thể có – genesis

+1

@ AlexMorley-Finch bất kỳ phương thức tuyệt đối nào chỉ hoạt động nếu được lưu trữ trên máy chủ chứ không phải trên bản xem trước * nhanh * (như xem trước tệp trên trình duyệt). – jackJoe

2

Ví dụ thư mục của bạn là như thế này:

Desktop > 
     ProjectFolder > 
         index.html 
         css > 
          style.css 
         images > 
          img.png 

Bạn đang ở style.css của bạn và bạn muốn sử dụng img.png như một background-image , sử dụng điều này:

url("../images/img.png") 

Làm việc cho tôi!

0

Trong CSS tất cả các bạn phải làm là đặt url(logical path to the image file)

5

tôi sử dụng một giải pháp đường dẫn tương đối,

./../../../../../images/img .png

mọi ../ sẽ đưa bạn một thư mục hướng lên gốc. Hi vọng điêu nay co ich..

+0

Tôi đang tìm kiếm điều này và nó đã giải quyết được vấn đề của tôi! Cảm ơn! – Dozer789

+3

sử dụng tốt hơn /../ – Eike

+2

hãy cẩn thận, quy tắc bảo mật máy chủ có thể cấm chuỗi quá dài ../../../ –

0

Sự cố này có nghĩa là liên kết "../" có nghĩa là bước lên (thư mục mẹ) "../images/img.png" sẽ không hoạt động vì khi bạn đang sử dụng ajax như dữ liệu chuyển đến trang web từ máy chủ.

Những gì bạn phải làm là chỉ vị trí hình ảnh để nhổ tận gốc với "./", sau đó vào thư mục thứ hai (trong trường hợp này thư mục thứ hai là 'hình ảnh')

url("./images/img.png") 

nếu bạn có thư mục như thế này

root -> content -> images

sau đó bạn sử dụng url("./content/images/img.png"), nhớ hình ảnh của bạn sẽ không hiển thị trong cửa sổ soạn thảo nhưng khi nó truyền cho các trình duyệt sử dụng ajax nó sẽ hiển thị.

3

nhấp here để được giải thích tốt!

Tất cả bạn cần biết về đường dẫn tập tin tương đối:

Bắt đầu với "/" trở về thư mục gốc và bắt đầu có

Bắt đầu với "../" di chuyển một thư mục ngược và bắt đầu có

bắt đầu với "../../" di chuyển hai thư mục lạc hậu và bắt đầu ở đó (và vân vân ...)

Để di chuyển về phía trước, chỉ cần bắt đầu với thư mục con đầu tiên và tiếp tục di chuyển về phía trước

Các vấn đề liên quan