36 votes

Rails 3.1 Assets - Strange Serving in Development

J'ai un problème avec Rails 3.1 actifs pipeline. Les actifs sont inclus deux fois dans le développement:

<script src="/assets/main_new.js?body=1" type="text/javascript"></script>
<script src="/assets/pagenav.js?body=1" type="text/javascript"></script>
<script src="/assets/tours.controller.js?body=1" type="text/javascript"></script>
<script src="/assets/tours.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>

Rails en quelque sorte compile et comprend application.js donc, tous les scripts sont inclus deux fois - en tant que fichier individuel et en application.js

Tout va bien avec précompilés actifs en cours de production.

développement.rb

 config.assets.compress = false
 config.assets.debug = true

de production.rb

# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false

# Compress both stylesheets and JavaScripts
config.assets.compress = true
config.assets.js_compressor  = :uglifier
config.assets.css_compressor = :scss

config.assets.compile = false
config.assets.digest = true

application.rb

config.assets.enabled = true

39voto

Ethan McCutchen Points 474

Essayez d'ajouter le suivant pour le développement.rb:

config.serve_static_assets = false

...et puis en désactivant le cache de votre navigateur (mise à jour en fonction des commentaires)

La statique actifs, voir précompilés biens publics et les biens, qui est l'endroit où rake assets:precompile met.

Ce qui se passe, c'est que rien de ce qui existe dans le public/les actifs de remplacer quoi que ce soit dans app/assets si vous êtes de les servir. Donc public/assets/application.js est en cours de chargement lorsque la js tag est l'intention de repérer les app/assets/application.js.

12voto

Effisfor Points 143

Une fois que vous vous êtes débarrassé de / public / assets, vous devez également vider le cache du navigateur.

8voto

Peter Points 167

Cette juste m'a causé un problème. Réglage de la suivante fait que l'application fonctionne, mais inclut le seul application.js fichier - que je ne veux pas en développement:

config.serve_static_assets = false

J'avais pré-compilé mon actif précédemment (semble être la cause).

Pour le fixer, je n'ai suivantes:

  • Retirez le public/actifs dir que le plus tôt précompilation avait ajouté.
  • Exécutez RAILS_ENV=development rake assets:clean effacer tmp/actifs
  • Édité app/assets/application.js

C'est seulement après que j'ai édité application.js donc, il erronées, puis corrigé que la applciation.js inclus dans les pages n'a pas été le plein, précompilés application.js.

Je ne sais pas si tous ceux qui ont besoin d'être fait. J'ai également re-démarrage de mon serveur le long du chemin.

4voto

tw airball Points 781

Vous vous êtes fait tripoter (encore une fois), - n'oubliez pas d'ajouter une LIGNE BLANK après toutes vos directives //= require à la fin de votre application.js !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X