2012-01-26 36 views
28

Tôi đã tạo một giàn giáo bằng ruby ​​và tôi muốn chèn hình nền vào mọi trang trên trang web nhưng tôi không chắc chắn liên kết đến hình ảnh sẽ là gì.Thêm hình nền vào Ruby on Rails 2 trong CSS

hình ảnh của tôi là trong app/assets/images/"dep.jpg"

đây là những gì tôi có nhưng nó isnt làm việc:

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

Bất kỳ sự giúp đỡ? thanks

+0

hãy thử cung cấp đường dẫn chính xác. Coz ngay cả thư mục '/ public' có thư mục' images' và tôi nghĩ rằng nó đang tìm kiếm thay vì đường dẫn của bạn – uday

+0

Nó phụ thuộc vào nơi tệp của bạn, liên quan đến thư mục hình ảnh của bạn. '../' nói đi một thư mục từ vị trí tệp hiện tại và tìm thư mục hình ảnh. Cấu trúc thư mục của bạn trông như thế nào? –

+0

thư mục dự án đường ray của tôi được gọi là ClassSchedule/apps/assets/images/dep.jpg – Dan

Trả lời

19

Máy chủ web trong đường ray mất public thư mục làm cơ sở của ứng dụng. Do đó, tìm kiếm hình ảnh cụ thể dưới /public/images/ thay vì app/assets/images/"dep.jpg" & vì không có hình ảnh ở đó nên bạn không thể lấy hình ảnh. Hãy thử để đưa hình ảnh của bạn trong thư mục /public/images/ sau đó nó sẽ làm việc.

Chỉnh sửa: Nếu bạn đang sử dụng đường ray 3.1 thì điều này sẽ khác với Rails 3.1 sử dụng khái niệm đường ống nội dung cho tài sản của ứng dụng của bạn để sau đó đường dẫn app/assets/images/dep.jpg rõ ràng sẽ hoạt động.

+0

im loại mới cho đường ray để im không chắc chắn nơi thư mục công cộng. im chỉ chạy trên localhost bằng cách sử dụng máy chủ rails – Dan

+0

thư mục 'public' có trong thư mục gốc của ứng dụng' rails' của bạn.Cấu trúc phân cấp giống như '/public/images' – uday

+0

thư mục công cộng của tôi không có thư mục hình ảnh, tôi có nên tạo một hoặc tôi nên đặt nó vào thư mục công cộng không? – Dan

1

Bạn có thể sử dụng đường dẫn tuyệt đối chắc chắn:

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

Tôi đã tự hỏi kể từ khi Rails mất 'public' như basefolder, bạn không nghĩ rằng ngay cả khi anh ta áp dụng đường dẫn absoulte nó sẽ không làm việc trừ khi & cho đến khi tập tin được tiếp cận bởi máy chủ web bởi một số tinh chỉnh lạ? – uday

77

Trong Rails 3.1, đường dẫn sẽ thực sự được `/assets/dep.jpg ':

background-image: url(/assets/dep.jpg); 

Nếu bạn chuyển đổi giàn giáo của bạn. css tệp vào tệp Sass (đổi tên thành scaffold.css.scss) thì bạn có thể sử dụng trình trợ giúp:

background-image: image-url("dep.jpg"); 
11

Nếu hình ảnh của bạn ở app/assets/images/dep.jpg, sau đó trong tệp css trong đường ray, bạn nên viết background: url('/assets/dep.jpg');

Bạn không phải đặt hình ảnh trong thư mục công khai theo cách này.

2

nền: url ('/ assets/image_name.jpg');

này đã làm việc cho tôi trong Rails 4.0

+0

Ruby 4.0 ??? nghiêm túc .. hãy thay đổi nó thành Rails nếu bạn có nghĩa là Rails 4 – Abhinay

+1

Âm thanh, ngày đầu tiên của tôi – laffan

+0

Cool !! Đường ray nó là :) – Abhinay

0

Nếu bạn đang sử dụng một phiên bản hiện đại của đường ray (3.1 hay muộn tôi tin), bạn có thể sử dụng:

background: url('../dep.jpg'); 

Kể từ khi css cũng sống trong bạn thư mục nội dung .. tự động đề cập đến thư mục nội dung.