compilation avant d'actifs pour le fichier manifeste sous-répertoire
-
25-10-2019 - |
Question
J'utilise Rails 3.1 et à l'actif que j'avoir des fichiers comme ceci:
assets
javascripts
admin
admin.js
a1.js
client
client.js
c1.js
admin.js ressemble à ceci
//
//= require jquery
//= require jquery_ujs
//= require a1
Client.js ressemble à ceci
//
//= require jquery
//= require c1
Tout fonctionne bien en mode développement. Quand je fais des actifs de rake: precompile alors je ne vois pas de fichier javascript dans les biens publics /. Je vois toutes les feuilles de style dans les biens publics /.
Je pense que cela a à voir avec le fait que les fichiers manifest (admin.js et Client.js) dans ce cas sont sous-répertoire.
Alors est-ce vrai que les actifs de rake: precompile ne regarde pas dans les sous-répertoires
Toutes les suggestions sur la façon de résoudre ce problème. Je préfère avoir les fichiers comme je posai parce que j'ai un tas de fichiers javascript.
La solution
Il y a un tableau de précompilation dans la configuration Rails que les ensembles quels fichiers à precompile. application.js et application.css dans un répertoire .
Vous devez ajouter vos fichiers au tableau precompile:
config.assets.precompile += ['admin/admin.js', 'client/client.js']
Et ils devraient être accessibles via:
javascript_include_tag "admin/admin.js"
et
javascript_include_tag "client/client.js"
Autres conseils
rails 3.2.6, lors de la gestion des actifs javascript dans subdirs, vous pouvez nommer le manifeste pour chaque subdir « index.js » (par opposition à « des admin.js » OP et « Client.js »), puis en config / environnements / production.rb dire:
config.assets.precompile += ['admin.js', 'client.js']
Magie dans les coulisses regardera dans le sous-répertoire admin et compiler selon les spécifications de index.js, sortie à admin.js; de même pour le client.
Les actifs seront alors accessibles via:
javascript_include_tag 'admin'