Comment utiliser Assetic pour les besoins

J'essaie d'utiliser require.js dans le projet synfony2.

Ici, le code dans le fichier principal de la brindille:

<script data-main="{{ asset('bundles/web/js/main.js') }}" src="{{ asset('vendor/js/require.js') }}"> </script> 

Le vendor/js/require.js fichier vendor/js/require.js est correctement chargé, mais pour les vendor/js/require.js fichiers bundles/web/js/main.js je reçois le message:

Erreur non détectée: délai de chargement pour les modules: mainApp.js? 201205021855 http://requirejs.org/docs/errors.html#timeout

J'utilise RequireJS 1.0.8. Une idée de la façon de résoudre le problème? Merci.


Si je regarde la page source, il ressemble à:

 <script data-main="/~myName/myProject/web/bundles/web/js/main.js?101205021855" src="/~myName/myProject/web/vendor/js/require.js?101205021855"> </script> 

Donc, les chemins sont des droits, mais sur la console javascript, je reçois le message suivant:

GET http://localhost/~myName/myProject/web/app_dev.php/main.js?201205021855 404 (introuvable)

En ajoutant à @dgabriel response. Vous pouvez le faire en utilisant un filtre en tranche,

 <script data-main="{{ asset('bundles/web/js/main.js') | slice(0, -3) }}" src="{{ asset('vendor/js/require.js') }}"> </script> 
  1. Assurez-vous de laisser l'extension de fichier '.js' à partir de vos actifs. Cela devrait être data-main = "{{asset ('bundles / web / js / main')}}"

  2. Assurez-vous que votre chemin d'accès au fichier est correct.

  3. Assurez-vous qu'il n'y a pas d'erreur javascript dans main.js

Le 404 semble être venu en raison du fait que le «principal» soit requis ailleurs dans votre application – il ne correspond pas au chemin dans votre base de données. Dans ce cas, il est très probable qu'un problème avec votre configuration baseUrl ou chemin soit (les deux façons de dire à RequireJS où se trouvent vos modules). Dans votre exemple, votre base devrait être '/ ~ myName / myProject / web / bundles / web / js'.

Vous pouvez essayer d'utiliser https://github.com/hearsayit/HearsayRequireJSBundle . Il gère ces détails de configuration automatiquement et s'intègre parfaitement avec Assetic.