2013-06-11 6 views
0

J'ai le code HTML suivant depuis une page Grails GSP qui me donne une erreur "Uncaught Error: irrationalPath" de la console Javascript.Erreur irrationalPath dans Dojo 1.8

Je Dojo sous dans la hiérarchie suivante:
web-app
     /js
           /lib
                 /dojo
                       /dojo
                       /dijit
                       /dojox

Je n'ai trouvé aucune documentation sur les causes de cette situation. Les balises createLink détermination à l'adresse suivante:

<script type="text/javascript" src="/tfs-web2/static/js/lib/dojo/dojo/dojo.js"></script> 

et

baseUrl: "/tfs-web2/js/lib/" 


<!DOCTYPE html> 
<html > 
<head> 

    <link rel="stylesheet" href="<g:createLinkTo file="/js/lib/dojo/dijit/themes/claro/claro.css"/>"> 

    <script>dojoConfig = { 
     parseOnLoad: true, 
     async: true, 
     baseUrl: "${resource(uri:'/')}/js/lib/", 
     packages: [ 
      { name: "dojo", location: "dojo/dojo" }, 
      { name: "dijit", location: "dojo/dijit" } 
     ] 
    } 
    </script> 
    <script type="text/javascript" src="<g:createLinkTo file="/js/lib/dojo/dojo/dojo.js"/>"></script> 

    <script> 
     require(["dojo/ready", "dojo/fx"], function(ready, fx){ 
      ready(function(){ 
       require(["dijit/form/Button", "dojo/_base/window"], function(Button, win){ 
        ready(function(){ 
         new Button({}).placeAt(win.body()); 
        }); 
       }); 
      }); 
     }); 
    </script> 

</head> 
<body class="claro"> 
</body> 
</html> 



modifier: Je peux obtenir ce travail si j'utilise un CDN au lieu de référencer mes paquets locaux. Je ne veux pas utiliser de CDN, alors je suis toujours curieux de savoir comment je peux faire fonctionner cela en utilisant une copie locale de Dojo.

<script src="//ajax.googleapis.com/ajax/libs/dojo/1.8/dojo/dojo.js" 
     data-dojo-config="isDebug:true, async:true" type="text/javascript"></script> 

Répondre

0

Vous ne devriez pas avoir besoin de spécifier baseUrl. Dojo va le détecter automatiquement.

packages doit être paths et vous avez uniquement besoin de définir des modules personnalisés. dojo, dijit et dojox seront mappés automatiquement.

https://dojotoolkit.org/reference-guide/1.8/dojo/_base/config.html

+0

J'ai enlevé la mise en baseUrl et ont également essayé d'enlever toute dojoConfig ainsi. Je reçois toujours la même erreur. – jett

+0

Dans le débogueur de la console de votre navigateur, un objet doit être connecté pour vous donner plus d'informations. Sinon, vous pouvez utiliser la version non compressée de dojo (dojo.js.uncompressed.js) et placer un point d'arrêt sur 'throw makeError (" irrationalPath ", mid);' (~ line934) et voir ce qui provoque le lancement de l'erreur. –

+0

J'ai obtenu ceci pour travailler en employant Dojo 1.9 à la place.J'ai remarqué que dans la section qui lance cette exception, il y avait du code supplémentaire comparé à 1.8.x. Malheureusement depuis que j'ai quelque chose qui fonctionne déjà, je n'ai pas creusé pour savoir exactement ce qui cause l'échec de 1.8 pour moi. – jett

Questions connexes