2011-11-29 22 views
8

Tôi đang sử dụng Rails 3.1 và dưới tài sản tôi có các file như thế này:tài sản biên soạn trước cho thư mục con file manifest

assets 
    javascripts 
    admin 
     admin.js 
     a1.js 
    client 
     client.js 
     c1.js 

admin.js trông như thế này

// 
//= require jquery 
//= require jquery_ujs 
//= require a1 

client.js trông như thế này

// 
//= require jquery 
//= require c1 

Mọi thứ hoạt động tốt trong chế độ phát triển. Khi tôi làm rake tài sản: biên dịch trước sau đó tôi không thấy bất kỳ tập tin javascript trong công cộng/tài sản. Tôi thấy tất cả các bảng định kiểu ở nơi công cộng/tài sản.

Tôi nghĩ rằng điều này liên quan đến thực tế là tệp kê khai (admin.js và client.js) trong trường hợp này nằm trong thư mục con.

Vì vậy, điều này đúng là tài sản rake: biên dịch trước không nhìn vào thư mục con?

Bất kỳ đề xuất nào về cách sửa lỗi này. Tôi thích có các tập tin theo cách tôi đặt ra bởi vì tôi có một loạt các tập tin javascript.

Trả lời

11

Có một mảng tiền biên dịch trong cấu hình Rails đặt tập tin nào cần biên dịch trước. application.js và application.css trong bất kỳ thư mục nào.

Bạn sẽ cần phải thêm các tập tin của bạn vào mảng precompile:

 
config.assets.precompile += ['admin/admin.js', 'client/client.js'] 

Và họ nên có thể truy cập thông qua:

 
javascript_include_tag "admin/admin.js" 

 
javascript_include_tag "client/client.js" 
3

Tại đường ray 3.2.6 , khi quản lý nội dung javascript trong subdirs, bạn có thể đặt tên tệp kê khai cho mỗi subdir 'index.js' (trái ngược với OP 'Admin.js' và 'client.js'), và sau đó trong config/môi trường/production.rb nói:

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

kỳ diệu đằng sau hậu trường sẽ xem xét trong subdir quản trị và biên dịch theo thông số kỹ thuật trong chỉ số .js, xuất ra admin.js; tương tự như vậy cho khách hàng.

Nội dung sau đó sẽ có thể truy cập được qua:

javascript_include_tag 'admin' 
Các vấn đề liên quan