Domanda

Sto usando Rails 3.1 e tra le attività non ho i file in questo modo:

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

admin.js aspetto come questo

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

Client.js assomiglia a questo

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

Tutto funziona bene in modalità di sviluppo. Quando faccio le attività rake: precompilare quindi non vedo alcun file javascript in attività / pubblici. Vedo tutti i fogli di stile in attività / pubblici.

Credo che questo abbia a che fare con il fatto che i file manifesto (admin.js e Client.js) in questo caso sono in sottodirectory.

Quindi, è vero che le attività rake:? Precompilare non sembra in sottodirectory

Qualche suggerimento su come risolvere questo problema. Io preferisco avere i file il modo in cui ho messo fuori perché ho un sacco di file javascript.

È stato utile?

Soluzione

C'è una matrice di precompilare nella configurazione Rails che le serie quali file di precompilare. application.js e application.css in qualsiasi directory.

Sarà necessario aggiungere i file alla matrice precompilare:

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

E dovrebbero essere accessibili tramite:

javascript_include_tag "admin/admin.js"

e

javascript_include_tag "client/client.js"

Altri suggerimenti

A rotaie 3.2.6, quando la gestione dei beni javascript in sottocartelle, è possibile denominare il manifesto per ogni sotto-directory 'index.js' (al contrario di PO 'admin.js' e 'Client.js'), e poi in config / ambienti / production.rb dire:

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

Magic dietro le quinte sarà nella subdir di amministrazione e compilare secondo le specifiche in index.js, viene passato a admin.js; Allo stesso modo per il cliente.

Il patrimonio sarà quindi accessibile tramite:

javascript_include_tag 'admin'
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top