问题是我如何修复模块1的路径问题,如控制台日志所示?
基本信息 - 最新版本的requirejs,下划线和jquery,位于库
中目录布局
library
templates
-default
--js
---lib.js
---module1.js
-scripts
--calendar
---module2.js
--jquery.alpha.js
--jquery.beta.js
-main.js
index.php
在index.php
中<script>var Template="default/"</script> //todo convert to session
<script>var Domain="mygsd"</script> //todo convert to session
<script src="library/require.js/require.js" data-main="templates/main">
main.js
var templatejs = Template+'js/';
var scripts = 'scripts/';
require.config({
baseUrl:"templates/",
catchError: true,
paths: {
jquery: '//ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min',
underscore: 'library/underscore',
libs:templatejs+'lib',
scripts: scripts,
},
shim: {
'jQuery': {
exports: '$'
},
'underscore': {
exports: '_'
}
}
});
require(['libs']);
define(["jquery", "scripts/jquery.alpha", "scripts/jquery.beta"], function($) {
$(function() {
$('body').alpha().beta();
});
});
libs.js
define([templatejs+'module1', scripts+"calendar/module2"], function(module1ref, module2ref){
var module1 = new module1ref(),
module2 = new module2ref();
console.log(module1.getName() === module2.getModule1Name());
});
module1.js
define([], function () {
var returnedModule = function () {
var _name = 'module1 name';
this.getName = function () {
return _name;
};
};
return returnedModule;
});
module2.js
define(['module1'], function (module1ref) {
var module1 = new module1ref();
var returnedModule = function () {
this.getModule1Name = function () {
return module1.getName();
};
};
return returnedModule;
});
控制台日志
Completed load of main require.js (line 1531) Loading jquery from //ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js require.js (line 1650) Loading scripts/jquery.alpha from templates/scripts//jquery.alpha.js require.js (line 1650) Loading scripts/jquery.beta from templates/scripts//jquery.beta.js require.js (line 1650) Loading libs from templates/default/js/lib.js require.js (line 1650) Completed load of scripts/jquery.alpha require.js (line 1531) Completed load of scripts/jquery.beta require.js (line 1531) Completed load of libs require.js (line 1531) Loading default/js/module1 from templates/default/js/module1.js require.js (line 1650) Loading scripts/calendar/module2 from templates/scripts//calendar/module2.js require.js (line 1650) Completed load of default/js/module1 require.js (line 1531) Initializing default/js/module1 require.js (line 1662) Completed load of scripts/calendar/module2 require.js (line 1531) Loading module1 from templates/module1.js require.js (line 1650) Completed load of jquery require.js (line 1531) Initializing jquery require.js (line 1662) Initializing scripts/jquery.alpha require.js (line 1662) Initializing scripts/jquery.beta require.js (line 1662) Initializing main require.js (line 1662) "NetworkError: 404 Not Found - http://local:81/mygsd/templates/module1.js" module1.js
答案 0 :(得分:0)
由于module1的路径在module2中不正确,因此我获得了默认/备份路径。 应该是:
define([templatejs + 'module1'], function (module1ref){
var module1 = new module1ref();
var returnedModule = function (){
this.getModule1Name = function (){
return module1.getName();
};
};
return returnedModule;
});