Pregunta

Estoy usando Rails 3.1 y debajo de los activos tengo archivos como este:

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

Admin.js se ve así

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

Client.js se ve así

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

Todo funciona bien en el modo de desarrollo. Cuando hago activos de rastrillo: precompilar, entonces no veo ningún archivo JavaScript en público/activo. Veo todas las hojas de estilo en público/activos.

Creo que esto tiene que ver con el hecho de que los archivos de manifiesto (admin.js y client.js) en este caso están en subdirectorio.

Entonces, ¿es esto cierto que los activos de rastrillo: precompil no busca subdirectorios?

Alguna sugerencia en como arreglar esto. Prefiero tener los archivos de la forma en que presenté porque tengo un montón de archivos JavaScript.

¿Fue útil?

Solución

Hay una matriz de precompilación en la configuración de Rails que establece qué archivos precompilará. Application.js y Application.css en ningún directorio.

Deberá agregar sus archivos a la matriz de precompilación:

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

Y deben ser accesibles a través de:

javascript_include_tag "admin/admin.js"

y

javascript_include_tag "client/client.js"

Otros consejos

En Rails 3.2.6, al administrar los activos de JavaScript en subdirs, puede nombrar el manifiesto para cada subdir 'index.js' (en oposición a 'admin.js' y 'client.js'), y luego en config/entornos /Production.RB Di:

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

La magia detrás de escena se verá en el subdir de administración y se compilará de acuerdo con las especificaciones en index.js, emitiendo a administrador.js; Del mismo modo para el cliente.

Luego se pueden acceder a los activos a través de:

javascript_include_tag 'admin'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top