2012-02-13 41 views
6

Tôi đang cập nhật ứng dụng đường ray 2 hiện có thành đường ray 3 và gặp khó khăn khi hiểu đường dẫn nội dung. Tôi đã đọc qua guide và như tôi hiểu nó, các file trong bất kỳ thư mục sau đây sẽ giải quyết đến/tài sản:rails3 đường dẫn nội dung và va chạm tệp

  • ứng dụng/tài sản
  • lib/tài sản
  • vendor/tài sản

và bạn có thể truy cập chúng bằng cách sử dụng trình trợ giúp ... tức là

image_tag('logo.png') 

Nhưng điều tôi không hiểu là xử lý va chạm như thế nào? Ví dụ, những gì nếu có những file sau:

  • ứng dụng/tài sản/images/logo.png
  • lib/tài sản/images/logo.png

Nếu tôi đi đến MyApp. com/assets/images/logo.png, tệp nào sẽ được trả về? Tôi có thể kiểm tra va chạm bằng tay trong ứng dụng của tôi, nhưng điều này trở thành một điểm đau khi sử dụng đá quý dựa trên đường ống tài sản.

Trả lời

2

Dựa trên những gì tôi đã tìm thấy, bạn không thể có các tệp trùng lặp vì đường ray sẽ chỉ trả lại tệp đầu tiên được tìm thấy.

Điều này có vẻ giống như một chút của một lỗ hổng thiết kế, như một viên ngọc có thể không không gian tên tài sản riêng của họ

+0

Tôi đã có jQuery kèm theo đá quý 'jquery-rails'. Trong một phần riêng biệt của dự án Rails của tôi, tôi muốn sử dụng một phiên bản khác của jQuery, được lấy bởi Bower, mà không bỏ qua 'jquery-rails' cho phần còn lại của dự án. Có cách nào làm được việc này không? –

0

Tại sao không tận dụng những index manifest và tổ chức app/assets của bạn thành các module tách riêng? Sau đó, bạn có thể tham chiếu đến một hình ảnh cụ thể, image_tag('admin/logo.png') và nhận mã miễn phí cho giao diện người dùng của bạn được sắp xếp theo cách có ý nghĩa hơn. Bạn thậm chí có thể quảng cáo một thành phần phức tạp, chẳng hạn như Single Page Application vào mô-đun riêng của nó và sử dụng lại nó từ các phần khác nhau của ứng dụng.

Hãy nói rằng bạn ứng dụng được sáng tác ra khỏi ba mô-đun: phía công chúng, một giao diện người dùng quản trị và, ví dụ, một CRM để cho các đại lý của bạn theo dõi quá trình bán hàng tại công ty của bạn:

app/assets/ 
├── coffeescripts 
│   ├── admin 
│   │   ├── components 
│   │   ├── index.coffee 
│   │   └── initializers 
│   ├── application 
│   │   ├── components 
│   │   ├── index.sass 
│   │   └── initializers 
│   └── crm 
│    ├── components 
│    ├── index.sass 
│    └── initializers 
├── images 
│   ├── admin 
│   ├── application 
│   └── crm 
└── stylesheets 
    ├── admin 
    │   ├── components 
    │   └── index.sass 
    ├── application 
    │   ├── components 
    │   └── index.sass 
    └── crm 
     ├── components 
     └── index.sass 

21 directories, 6 files 

Đừng quên cập nhật application.rb của bạn để chúng được biên dịch trước đúng cách:

config.assets.precompile = %w(admin.js application.js crm.js 
           admin.css application.css crm.css) 
Các vấn đề liên quan