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
undpaths
. Zum BeispielbaseUrl: libs
, undpaths: { "app" : "../app" }
usw. - Ich versuchte
deps
undcallback
anstattrequire
untenconfig
. - Ich habe die Eigenschaft
context
-, matching -baseUrl
. - Habe ich verschoben require.config.js in die libs - Verzeichnis (Bearbeiten
baseUrl
undpaths
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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lösung war nicht zu haben . (Perioden) in die Konfigurations-Datei mit dem Namen. Nach dem umbenennen der Datei require-config.js alles funktionierte wie erwartet. Die anderen Dateien sind in Ordnung, mit Punkten im Namen an, nur nicht die Haupt-Konfigurationsdatei.
Ich glaube nicht, können Sie den alias deiner config mit dem Namen, obwohl. Dies funktioniert, wenn die config-Datei selbst ist nicht betroffen.
InformationsquelleAutor morewry