Charge requireJS module inline le corps HTML?

Je suis l'intégration de RequireJS dans un CMS, donc je l'ai mise sur le bas de ma page modèle:

<html>
<body>
  {Placeholder1}
  <script src="scripts/require.js" data-main="scripts/main"></script>
  {Placeholder2}
</body>
</html>

Ensuite sur chaque page, je voudrais créer une fonction qui tire parti de RequireJS. J'ai donc essayé de placer ce sur le bas de la page:

<html>
<body>
    <h1>Home</h1>
    <div class="slider">Slider content</div>

    <script src="scripts/require.js" data-main="scripts/main"></script>

    <script type="text/javascript">
      require([
        'jquery',
        'utils',
        'slider'
      ], function ($, utils, slider) {
        slider.start();
      });
    </script>
</body>
</html>

Mais je suis 404 sur jquery, utils et le slider js fichiers. Il semble que ce n'est pas la lecture de mon main.js les configs que j'ai:

require.config({
    paths: {
        jquery: 'libs/jquery-1.8.1.min',
        utils: 'libs/utils',
        slider: 'libs/jquery.slider.min'
    },
    shim: {
        slider: ['jquery']
    }
});

require([ 'utils' ], function (utils) {
    utils.init();
});

J'ai essayé de chargement RequireJS et main dans la page de la tête, mais a obtenu des résultats incohérents de cette façon. Parfois, jquery, utils et curseur serait chargé dans le temps et d'autres fois non. C'est comme si la ligne "exiger" sur le bas de la page n'est pas au courant de la principale RequireJS sur la page ou les règles de dépendances, mais mon point d'arrêt est atteint dans main.js donc je sais qu'il est appelé. Est-ce parce que main.js est chargé de manière asynchrone, mais mon inline "exiger" bloc sur le bas de la page est chargée sur la page de rendu? Comment puis-je contourner ce problème?

J'ai utilisé RequireJS avec succès avant, mais sans un CMS. J'ai toujours l'habitude de "définir" et des modules toujours appelé asychronously, mais n'a jamais eu à appeler RequireJS fonction inline comme ça. Toutes les idées sur la manière correcte de le faire?

OriginalL'auteur Basem | 2012-10-02