2012-04-16 11 views
36

Tôi có phần mới với đường dẫn nội dung Rails nên tôi có thể đang làm điều gì đó sai. Tôi đang cố gắng sử dụng Active Admin cho phụ trợ của tôi và css bootstrap twitter cho ứng dụng giao diện người dùng của tôi.Rails Active Admin css mâu thuẫn với Twitter Bootstrap css

tôi thêm bootstrap.css để /app/tài sản/stylesheets sau đó cũng nói thêm:

//= require bootstrap 

để application.css - sau đó tôi đã làm một tiền biên dịch các tài sản tại địa phương

Dường để làm việc tốt nhưng một số phong cách không phải là thông qua chính xác và tôi nghĩ rằng đó là bởi vì css của admin hoạt động là trọng nó.

Hiểu biết của tôi là ứng dụng sẽ biên dịch nội dung css vào nội dung công khai của ứng dụng css và ứng dụng sử dụng tệp đó khi chạy.

tôi cần phải bằng cách nào đó tách hai và làm cho nó sử dụng twitter bootstrap css như css chính ở đầu phía trước và có thể nói nó không sử dụng css hoạt động của admin tập tin trên kết thúc trước.

Cách tốt nhất để làm điều này là gì?

Trả lời

27

Bạn đã xem video RailsCasts về sử dụng ActiveAdmin chưa? Trong video, Ryan chỉ cho bạn cách ngăn ActiveAdmin CSS bước trên CSS ứng dụng chính của bạn.

http://railscasts.com/episodes/284-active-admin

Di chuyển thông tin từ video vào câu trả lời

Trong application.css bạn loại bỏ:

*= require_tree . 

Đối với đường ray 4, Jiten K đề xuất thêm này để production.rb:

config.assets.precompile += ['active_admin.css'] 

Tuy nhiên một trong những nhận xét về câu trả lời SO nói rằng điều này là không cần thiết. Tôi không cần nó cho đến nay.

+3

MattSlay là đúng ... Ryan railscast (# 284) sẽ cho bạn thấy làm thế nào để làm được việc này (đó là tất cả vì sự "require_tree. "trong application.css).Việc xóa/chỉnh sửa sẽ giải quyết vấn đề CSS. –

+0

Phương pháp này hoạt động tốt cho tôi trong chế độ phát triển, nhưng trong sản xuất tôi gặp vấn đề khi chạy 'bundle exec rake assets: precompile': trong trường hợp của tôi, các tệp css kết thúc hỗn hợp và bootstrap.css được ghi đè bởi ActiveaAdmin. Bất kỳ ý tưởng?. Cảm ơn! – CristianOrellanaBak

+0

nhưng nhưng 'require_tree .' là phép thuật cho phép tất cả các tệp CSS của bạn được rails một cách kỳ diệu vào Rails ... câu trả lời này là quá mức cần thiết và không được chấp nhận – AlexChaffee

125

tôi đã cùng một vấn đề, và đã có thể sửa chữa nó bằng cách di chuyển

app/assets/stylesheets/active_admin.css.scss 

để

vendor/assets/stylesheets/active_admin.css.scss 

Tài sản quản trị hoạt động nên được vendor/ như đã đề cập trong rails guide:

"Nhà cung cấp/tài sản dành cho nội dung do các tổ chức bên ngoài sở hữu , chẳng hạn như mã cho các plugin JavaScript và khung CSS. "

+0

Nó hoạt động tốt khi chạy' bundle exec rake assets: preompile '?. Trong trường hợp của tôi, các tệp css kết thúc hỗn hợp và bootstrap.css bị ghi đè bởi activeadmin. Bất kỳ ý tưởng?. – CristianOrellanaBak

+0

không hoạt động với tôi – theDazzler

+9

Và thực hiện tương tự cho 'active_admin.js'. Di chuyển nó sang 'vendor/assets/javascripts/active_admin.js' – Arcolye

3

Đối với tôi thay đổi application.css để sau giải quyết vấn đề:

*= require bootstrap 
*= require_tree . 
*= stub "active_admin" 
+0

Điều này dường như làm việc cho tôi, cảm ơn. Tôi đã không thể tìm ra chính xác những gì 'stub' làm, bạn sẽ nhớ cho tôi một gợi ý nhanh chóng? – justinraczak