11

Tôi sử dụng bộ mã để viết ít hơn, sau đó chuyển đổi thành css tự động.Loại trừ tệp khỏi nội dung: biên dịch trước trong đường ray

Tôi không muốn đường dẫn chuyển đổi tệp của mình thành css, tôi thích làm codekit hơn.

nếu tôi hành tiền biên dịch tài sản qua

rake assets:precompile 

tôi nhận được

rake aborted! 
cannot load such file -- less 

Làm thế nào để loại trừ một loại thư mục/tập tin cụ thể từ các precompiling? (Tất cả các file dưới của tôi là trong ứng dụng/tài sản/stylesheets/ít và css (mà tôi muốn được biên dịch sẵn) là trong ứng dụng/tài sản/stylesheets/css

cập nhật

xóa application.less giải quyết này nhưng làm cách nào để loại bỏ nó từ chế biến ở nơi đầu tiên

Trả lời

18

từ hướng dẫn Asset Pipeline:

các khớp mặc định cho biên dịch các file bao gồm application.js, ap plication.css và tất cả các file không JS/CSS (ví dụ, .coffee và .scss file không được tự động đưa vào như họ biên dịch để JS/CSS):

[ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) }, /application.(css|js)$/ ] 

Nếu bạn có biểu hiện khác hoặc stylesheets cá nhân và JavaScript file để bao gồm, bạn có thể thêm chúng vào mảng precompile:

config.assets.precompile += ['admin.js', 'admin.css', 'swfObject.js'] 

Vì vậy, tôi sẽ nói rằng giải pháp của bạn là để sửa đổi config.assets.precompile để loại trừ .less tệp. Có lẽ một cái gì đó như thế này (trong một tập tin môi trường thích hợp, như config/environments/production.rb):

config.assets.precompile = [ Proc.new{ |path| !File.extname(path).in?(['.js', '.css', '.less']) }, /application.(css|js)$/ ] 
+0

điều này không hoạt động .. cùng lỗi –

+1

Điều này không thành công vì Rails không biết phải làm gì với các tệp 'less'. Thêm đá quý 'ít hơn 'vào ứng dụng của bạn có thể xóa lỗi nhưng không phải là giải pháp bạn đã đặt ra trong câu hỏi. – Kashyap

+0

ok chỉnh - điều này hoạt động khi tôi đặt nó trong production.rb .. không phải nó application.rb .. bất kỳ chỉ với bó exec –

1

Nếu cấu trúc thư mục của bạn trong thư mục app/tài sản là vậy:

application.css 
/css 
(generated by code kit) 
|...home.css 
|...index.css 
/less 
|...home.less (assuming this is the extension) 
|...index.less 

Sau đó, trong tập tin application.css của bạn , phải có một chỉ thị cho biết *= require_tree . Điều này cho phép các đường ray quét tất cả các tệp/thư mục và cố gắng biên dịch tất cả các tệp thành một tệp css.

Thay đổi điều này thành *= require_directory ./css và nó sẽ tải các tệp trong thư mục css để biên soạn.

+0

vẫn giống nhau: (đáng chú ý của nó rằng cây của tôi là /css/application.css và/less/application.less –

+0

Ah! Điều đó sẽ thất bại vì application.css là tệp chính mà trong đó các phần tử con sẽ được biên dịch thành. – Kashyap