risorsa pre compilation per file manifesto sottodirectory
-
25-10-2019 - |
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.
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'