2012-06-28 31 views
5

Khi tôi chạy bundle exec rake assets:precompile --trace, biên dịch trước của tôi không thành công nhưng tôi không thể thấy bất kỳ lý do cụ thể nào cho nó.tài sản cào biên dịch không thành công

Xem pastebin này cho đầu ra của tôi: http://pastebin.com/zggZyPyM tài sản

+0

Bạn đã cài đặt thời gian chạy javascript chưa? Tôi gặp phải một lỗi tương tự trong tuần này khi cố gắng biên dịch trước các tài sản trên một máy ảo Linux. – Zajn

+1

nếu đề xuất của zajn không hoạt động, bạn nên kiểm tra nhật ký hệ thống của mình. Các tài sản biên dịch trước chiếm rất nhiều bộ nhớ (nhiều hơn "đường ray") và có thể là hệ điều hành đang giết chết quá trình đó. – rubish

+0

Ah! @ rubish Bạn đúng ... hết bộ nhớ. – jasonlfunk

Trả lời

13

Precompiling mất rất nhiều bộ nhớ. ~ = 400mb trong trường hợp của tôi. Có thể hệ điều hành đang giết quá trình này do sử dụng bộ nhớ quá mức. Bạn có thể kiểm tra nhật ký hệ thống để xác minh xem đó có phải là trường hợp không.

Bạn có thể tăng bộ nhớ máy chủ của mình để tránh tình huống. Nếu điều đó là không thể, tôi sẽ đề nghị bạn biên dịch trước các tài sản trên hệ thống cục bộ của bạn, cam kết chúng với repo và triển khai tới máy chủ. Bằng cách đó bạn sẽ không phải biên dịch tài sản trên máy chủ của bạn. Tuy nhiên bạn có thể muốn xem xét các cách để xóa các tài sản đã tạo trước đó bằng cách nào đó và cũng tự động hóa quá trình.

2

, nhưng vấn đề đã được giải quyếtTôi đã thử cài đặt node.js trước tiên. Và sau đó, chạy lệnh sau đây bundle exec rake assets:precompile. Chỉ sau đó tôi không nhận thấy lỗi.

Ban đầu, tôi nghĩ đó là do bộ nhớ quá thấp. Làm sạch gần như tất cả các ứng dụng đang chạy, nhưng không thể tìm thấy một giải pháp. Thêm vào đó, tôi đã mở Ruby làm quản trị viên. Không chắc chắn nếu điều đó đã giúp quá, nhưng vấn đề đã được giải quyết.

+0

Cài đặt Node.js trên các cửa sổ đã khắc phục sự cố này cho tôi. FYI, [trang] này (http://ajacevedo.com/2013/using-node-js-as-a-rails-javascript-runtime/) có thông tin tốt về việc thiết lập env để sử dụng Node.js – konyak

+0

thêm gói exec làm việc cho tôi – Feuda

0

Sự cố này cũng có thể được giải quyết bằng cách sử dụng thời gian chạy JS node.js để biên dịch trước các phần tử vì nó dường như có dấu chân bộ nhớ thấp hơn. Đối với Ubunutu 14.04 tôi cần chạy apt-get install nodejs, sau đó thay thế thời gian chạy js mặc định trong Gemfile bằng gem 'node', chạy bundle và cuối cùng chạy lại biên dịch trước. Tôi sẽ thận trọng chống lại biên dịch trước tại một vị trí khác vì bạn có thể quên làm điều này sau khi thay đổi css hoặc js, dẫn đến lỗi.

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