2012-02-13 21 views
6

estoy actualizando una aplicación rieles existentes 2 a 3 carriles, y tener algunos problemas para entender la tubería de activos. He leído a través de la guide y como yo lo entiendo, los archivos en cualquiera de los siguientes directorios resolveré a/activos:activos rails3 de tuberías y archivo colisiones

  • app/activos
  • lib/activo
  • vendedor/activos

y se podía acceder a ellos utilizando ayudantes ... es decir,

image_tag('logo.png') 

Pero lo que no entiendo es cómo se manejan las colisiones? Por ejemplo, ¿qué pasaría si existen los siguientes archivos:

  • app/assets/images/logo.png
  • lib/assets/images/logo.png

Si voy a Myapp. com/assets/images/logo.png, ¿qué archivo será devuelto? Podía verificar las colisiones manualmente en mi aplicación, pero esto se convierte en un punto de dolor cuando se usan gemas que dependen de la cartera de activos.

Respuesta

2

Sobre la base de lo que he encontrado, no se puede tener archivos duplicados, como carriles se acaba de devolver la primera que se encuentre.

Este parece ser un poco de un defecto de diseño, como una gema puede no namespace sus propios activos

+0

tengo jQuery liado por el 'gema jquery-rails'. En una parte separada de mi proyecto Rails, me gustaría utilizar una versión diferente de jQuery, fue a buscar por Bower, sin abandonar 'jquery-rails' para el resto del proyecto. ¿Hay una manera de hacer eso? –

0

Por qué no tomar ventaja de la index manifest y organizar su app/assets en módulos disociadas? A continuación, puede hacer referencia a una imagen en particular, image_tag('admin/logo.png'), y obtener de forma gratuita el código base de la interfaz de usuario organizada de una manera más significativa. Incluso podría promocionar un componente complejo, como la Aplicación de una sola página en su propio módulo y reutilizarlo desde diferentes partes de la aplicación.

Digamos que la aplicación se compone de tres módulos: el lado público, una interfaz de usuario admin y, por ejemplo, un CRM dejar que sus agentes realizar el seguimiento del proceso de venta de su empresa:

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 
no hacer

se olvide de actualizar su application.rb por lo que estarán previamente compilados correctamente:

config.assets.precompile = %w(admin.js application.js crm.js 
           admin.css application.css crm.css) 
Cuestiones relacionadas