2012-07-05 31 views
5

Sau khi đọc bài này post (khuyến nghị đọc) về việc không sử dụng HTML5Shiv trực tiếp từ nguồn như (gần như) mọi người làm, tôi đang cố gắng bao gồm html5shiv.js ứng dụng của tôi sử dụng Đường ống tài sản Rails 3.2.Rails 3.2 Đường ống tài sản + html5shiv.JS trong nhà cung cấp/nội dung/javascript

Tôi đã tải xuống cả phiên bản rút gọn và không được rút gọn của javascript. Quy ước cho bạn biết thêm các tệp của bên thứ ba vào thư mục nhà cung cấp/tài sản. Tôi có hai câu hỏi ngay bây giờ:

1) Tôi nên thêm phiên bản nào (được rút gọn hoặc không được rút ngắn) vào thư mục vendor/assets/javascrip?

2) Vì đây là tham chiếu có điều kiện <!--[if lt IE 9]>, tôi nên gọi tập lệnh bằng cách nào?

Tôi không muốn thêm nó vào tệp kê khai ứng dụng.js, bởi vì tôi muốn giữ nó dưới dạng tệp riêng biệt và tôi muốn sử dụng điều kiện. Tôi là loại bị mất!

Mọi trợ giúp sẽ được đánh giá rất cao.

Cảm ơn

Trả lời

8

Bạn có thể sử dụng phiên bản unminified của JS nếu bạn thích, Rails sẽ nén nó trong chế độ sản xuất thông qua các đường ống dẫn.

Để giữ shiv dưới dạng tệp riêng biệt, bạn có thể cung cấp tệp đó dưới dạng tệp kê khai riêng bằng cách tạo html5.js (hoặc bất kỳ thứ gì) trong thư mục /vendor/assets/javascripts/ của bạn. Trong tập tin đó yêu cầu html5shiv (tôi giả định tệp kê khai và tập lệnh nằm trong cùng một thư mục).

//= require html5shiv 

hoặc

//= require html5shiv.min 

Và sau đó bao gồm các biểu hiện trong cách bố trí của bạn trong khối có điều kiện. Trong HAML, chẳng hạn như:

== "<!--[if lt IE 9]>" 
= javascript_include_tag 'html5' 
== "<![endif]-->" 

Nhớ khởi động lại máy chủ ứng dụng của bạn trước khi thử nghiệm.

+0

tôi đã cố gắng những gì bạn nói, và HTML được tạo là thế này: - Cả hai file có cùng nội dung và nếu tôi cố gắng truy cập hơn bằng cách sử dụng? body = 1 chương trình trống. Nếu tôi loại bỏ? Body = 1 chúng được hiển thị ok. Nhưng khi tôi cố gắng để cào tài sản: biên dịch trước, html5shiv.js không được biên soạn và khi tôi chạy máy chủ trong chế độ sản xuất, tôi nhận được một lỗi. Tôi đang thiếu gì? –

+0

Tôi đoán tài sản của tôi không được phân phối. Bây giờ mọi thứ dường như hoạt động. Cảm ơn nhiều. –

+1

Hãy nhớ thêm các tệp kê khai tùy chỉnh vào danh sách biên dịch trước của bạn trong 'config/environment/production.rb' Nó có hướng dẫn, nhưng một ví dụ:' config.assets.precompile + =% w [html5.js] ' –

1

Hoặc bạn có thể sử dụng trực tiếp

/[if lt IE 9] 
    %script{ src: "http://html5shim.googlecode.com/svn/trunk/html5.js", type: "text/javascript" } 
Các vấn đề liên quan