2012-04-25 19 views
7

Gần đây tôi đã viết một bài đăng blog trên asset pipeline và biết rằng thư mục lib/assets phải được bao gồm trong danh sách đường dẫn nội dung. Nếu tôi tạo một ứng dụng Rails hoàn toàn mới bằng cách sử dụng 3.2.2, hãy chạy bàn điều khiển và sau đó chạy lệnh y Rails.application.config.assets.paths Tôi không thấy lib/asset. Không nên bao gồm điều này theo mặc định?Tại sao ứng dụng mới của Rails 3.2.2 không bao gồm lib/asset trong đường dẫn nội dung?

Đây là cách tôi đến đó:

$ rails new example 
$ cd example 
$ rails c 
>> y Rails.application.config.assets.paths 
--- 
- /Users/eberry/Playground/example/app/assets/images 
- /Users/eberry/Playground/example/app/assets/javascripts 
- /Users/eberry/Playground/example/app/assets/stylesheets 
- /Users/eberry/Playground/example/vendor/assets/javascripts 
- /Users/eberry/Playground/example/vendor/assets/stylesheets 
- /Users/eberry/.rvm/gems/ruby-1.9.2-p290/gems/jquery-rails-2.0.2/vendor/assets/javascripts 
- /Users/eberry/.rvm/gems/ruby-1.9.2-p290/gems/coffee-rails-3.2.2/lib/assets/javascripts 
=> nil 
>> 

Bất kỳ trợ giúp sẽ được đánh giá rất nhiều.

+0

Đối với những người quan tâm, [đây là phần có liên quan của hướng dẫn đường ray] (http://guides.rubyonrails.org/asset_pipeline.html#asset-organization). –

+0

có thể là một quyết định thiết kế không? để giữ số lượng đường dẫn ở mức tối thiểu. Có lẽ các nhà thiết kế cảm thấy lib/tài sản sẽ không được sử dụng trừ khi nhà phát triển ứng dụng đặt một số mã của riêng mình vào/lib, vì vậy anh ta phải bật/lib tài sản dựa? lib/vendor có sẵn theo mặc định vì đó là nơi các nhà phát triển gem thường đặt công cụ của họ. Chỉ cần đoán – RadBrad

+0

Mã nguồn trong Rails có thể được tìm thấy tại https://github.com/rails/rails/blob/master/railties/lib/rails/engine.rb#L574. Dường như họ không loại trừ nó. – cavneb

Trả lời

3

Tôi chưa cài đặt Rails trên máy tính này, nhưng từ tham chiếu nguồn có vẻ như lib/assets sẽ không bao giờ được bao gồm, nhưng bất kỳ đường phụ nào sẽ.

Hãy thử tạo lib/assets/javascripts và xem liệu điều đó có được bao gồm tự động hay không.

1

Bạn có bất kỳ điều gì trong bất kỳ thư mục lib nào không? Tôi có một tệp js trong thư mục lib/assets/javascripts của mình và khi tôi kiểm tra đường dẫn nội dung của mình, chỉ có một đường dẫn, tức là lib/asset/javascripts /, được hiển thị, mặc dù không phải lib/asset/images hoặc lib/assets/stylesheets , vì tôi không tạo các thư mục đó.

Tôi đang ở trên Rails 3.2.3.

0

Tôi chạy vào cùng một vấn đề trên đường ray 3.2 bạn phải đặt tập lệnh của mình vào thư mục "nội dung/javascripts" và chúng sẽ được bao gồm, nếu không thì không.

0

Bất kỳ thư mục con nào (không chỉ là biểu định kiểu/hình ảnh/javascripts) bạn tạo theo lib/asset sẽ được thêm vào đường dẫn tải.

Thử nghiệm với đường ray 3.2.11.

Sử dụng "đường ray c" và nhập "y Rails.application.config.assets.paths" để xác minh đường dẫn nội dung.

Tôi cho rằng điều tương tự với nhà cung cấp/nội dung và ứng dụng/tài sản cũng vậy, nhưng tôi đã không xác minh điều đó.

1

Tôi đã gặp vấn đề tương tự.

Đặt ít nhất một tệp, ví dụ: lib/assets/javascripts, sau đó khởi động lại ứng dụng của bạn.

Bây giờ rails cRails.application.config.assets.paths phải chứa lib/assets/javascripts.

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