2011-08-22 50 views
5

Tôi đang trong quá trình cố nâng cấp ứng dụng lên Rails 3.1 và tôi có khá nhiều tệp Javascript tùy chỉnh mà tôi đang cố di chuyển sang đường dẫn nội dung mới .yêu cầu tệp nội dung từ thư mục con của đường dẫn nội dung

My hiện tại (có nghĩa là, trước 3.1) cấu trúc thư mục có cái gì đó như:

public/ 
    foo/ 
     model.js 
     controller.js 
     etc... 

Vì vậy, tôi đang cố gắng để di chuyển chúng để lib/tài sản/Javascripts và giữ foo/thư mục con nguyên vẹn (thay vì tạo foo_model.js, foo_controller.js, v.v.)

Trong application.js của tôi, tôi đã cố gắng để làm:

//= require foo/model 

//= require 'foo/model' 

Nhưng những không có tác dụng. Ray luôn mang lại cho tôi một trang lỗi và nói:

couldn't find file 'foo/model.js' 

tôi đã kiểm tra rằng mọi thứ được bao gồm một cách chính xác nếu họ không có trong thư mục con, vì vậy tôi biết nó không phải chỉ là thư mục lib/tài sản của tôi không nằm trong bao gồm đường dẫn hoặc một cái gì đó. Vì vậy, tôi đoán tôi chỉ tự hỏi nếu có một cách để làm điều này, hoặc tôi chỉ nên làm phẳng các thư mục và sử dụng foo_model.js và như vậy?

Trả lời

6

Hình như đường ray chỉ có thêm một mức độ thư mục con để tài sản đường

Bạn có thể kiểm tra với đường dẫn hiện tại bằng cách chạy Rails.application.config.assets.paths tại đường ray console

thêm đường dẫn tuyệt đối của thư mục của bạn tại application.rb như

config.assets.paths += ["/path/to/lib/assets/javascript/foo"] 
+0

Vì vậy, theo quy định của Bánh răng sử dụng trang web (http://getsprockets.org/installation_and_usage) bạn đang nghĩ để có thể làm như: // = yêu cầu Nhưng điều này dường như không hoạt động. Tôi không chắc đó có phải là một lỗi hay nếu tôi chỉ làm điều gì sai. Điều đó có vẻ lý tưởng hơn với tôi, nhưng giải pháp của bạn là giải pháp thực sự hoạt động, vì vậy tôi cho bạn tín dụng. :) – bratsche

1

Không chắc tại sao đường ray chỉ thêm một cấp thư mục con, nhưng bạn chắc chắn có thể thêm đường dẫn bổ sung (đủ điều kiện) vào đường dẫn trong config/application.rb. Các tài liệu dẫn đến câu trả lời: http://guides.rubyonrails.org/asset_pipeline.html#asset-organization

Ví dụ:

config.assets.paths << "#{Rails.root}/app/assets/flash"

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