Warum ist require.js ignorieren config die baseUrl und Pfade

Ich habe ein problem, wo fast identisch require.js config Aufrufe, erscheinen die anders funktionieren, in einem Fall versagt zu setzen baseUrl und path.

Ordner-Struktur

 - /js
 - - app/
 - - libs/
 - - - hogan.js
 - - - backbone
 - - - - backbone.js
 - - - - etc.
 - - - boostrap
 - - - jquery
 - - - - jquery.js
 - - - - etc.
 - - - require
 - - - - require.js
 - - - - etc.
 - - templates/
 - - require.config.js

Script-tag

<script data-main="/resources/js/require.config" src="/resources/js/libs/require/require.js"></script>

Erfordert die Konfiguration

require.config(
    {
        baseUrl: "/resources/js/libs",
        shim: {
            "underscore": {
                exports: "_"
            },
            "backbone": {
                deps: [
                    "json2",
                    "underscore",
                    "jquery"
                ],
                exports: "Backbone"
            }
        },
        paths: {
            "app": "/resources/js/app",
            "backbone": "backbone/backbone",
            "jquery": "jquery/jquery",
            "templates": "/resources/js/templates",
            "templateEngine": "hogan"
        }
    }
);

require(
    [
        "app/router"
    ],
    function( AppRouter ){
        AppRouter.execute();
    } 
);

In beiden Fällen, ein script-tag wird angehängt, dass zeigt den kompletten Inhalt require.config.js beginnend mit:

<script type="text/javascript" charset="utf-8" data-requirecontext="_" data-requiremodule="require.config" src="/resources/js/require.config.js">

Definition in app/router

define(
    [
        'backbone',
        'templateEngine'
    ],
//etc
);

Jedoch, wo das problem Auftritt, app/router ist noch nie geladen, nur die folgenden (keine 404, nichts):

GET require.js 200 OK 180ms     
GET require.config.js 200 OK 69ms

Wenn ich eingeben require(["app/router"]); in der Firebug-Konsole bekomme ich Folgendes:

"NetworkError: 404 Not Found - /resources/js/backbone.js
"NetworkError: 404 Not Found - /resources/js/templateEngine.js"

Wenn das, was ich erwarte zu sehen ist:

  • /resources/js/libs/backbone/backbone.js
  • /resources/js/libs/hogan.js

Lösungen versucht

  • Ich habe versucht, verschiedene Kombinationen von relativen und absoluten Pfaden für baseUrl und paths. Zum Beispiel baseUrl: libs, und paths: { "app" : "../app" } usw.
  • Ich versuchte deps und callback anstatt require unten config.
  • Ich habe die Eigenschaft context -, matching -baseUrl.
  • Habe ich verschoben require.config.js in die libs - Verzeichnis (Bearbeiten baseUrl und paths als angemessen; erhalten noch das gleiche Problem, die ignoriert config, nur versucht er es zu laden /resources/js/libs/backbone.js statt, zum Beispiel).

Hinweis

Dieser Verzeichnisstruktur und config-Datei funktioniert auf meinem localhost, wo ich entfernen /resources/ aus dem Wege, wie oben gezeigt. Stattdessen werden alle relativen Pfade (keine, die mit /beginnen) verwendet werden, für baseUrl und paths. Aber auf dem eigentlichen server, der ist keine option.

InformationsquelleAutor morewry | 2012-06-25

Schreibe einen Kommentar