У меня возникла проблема, когда почти идентичные вызовы конфигурации require.js работают по-разному, в одном случае не удается установить baseUrl
и path
.
Структура папок
- /js
- - app/
- - libs/
- - - hogan.js
- - - backbone
- - - - backbone.js
- - - - etc.
- - - boostrap
- - - jquery
- - - - jquery.js
- - - - etc.
- - - require
- - - - require.js
- - - - etc.
- - templates/
- - require.config.js
Тег скрипта
Требовать конфигурацию
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();
}
);
В обоих случаях добавляется тег script, который показывает полное содержимое require.config.js, начиная с:
Определение в приложении/маршрутизаторе
define(
[
'backbone',
'templateEngine'
],
// etc
);
Однако, когда возникает проблема, приложение/маршрутизатор никогда не загружается, только следующее (нет 404, ничего):
GET require.js 200 OK 180ms
GET require.config.js 200 OK 69ms
Если я ввожу require([" app/router"]);
в консоли Firebug я получаю следующее:
"NetworkError: 404 Not Found - /resources/js/backbone.js
"NetworkError: 404 Not Found - /resources/js/templateEngine.js"
Когда я ожидаю увидеть следующее:
Попытки решения
baseUrl
и путей
. Например, baseUrl: libs
и пути: { "app" : "../app" }
и т. д.deps
и callback
вместо использования require
ниже config
.context
, соответствующее baseUrl
.baseUrl
и
по мере необходимости; по-прежнему возникает та же проблема с игнорируемой конфигурацией, только вместо этого он пытается загрузить /resources/js/libs/backbone.js).Примечание.
Эта структура папок и файл конфигурации работают на моем локальном хосте, где я удалил /resources/из путей, как показано выше. Вместо этого для baseUrl
и paths
используются относительные пути (ни один из которых не начинается с /). Но на реальном сервере это не вариант.