【发布时间】:2014-09-28 06:28:13
【问题描述】:
问题是如何解决控制台日志中提到的 module1 的路径问题?
基本信息 - 最新版本的 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;
});
控制台日志
完成 main require.js 的加载(第 1531 行) 从 //ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js 加载 jquery require.js(第 1650 行) 从 templates/scripts//jquery.alpha.js require.js 加载 scripts/jquery.alpha(第 1650 行) 从 templates/scripts//jquery.beta.js require.js 加载 scripts/jquery.beta(第 1650 行) 从 templates/default/js/lib.js require.js 加载库(第 1650 行) 已完成脚本/jquery.alpha require.js 的加载(第 1531 行) 完成脚本/jquery.beta require.js 的加载(第 1531 行) 已完成库 require.js 的加载(第 1531 行) 从 templates/default/js/module1.js 加载 default/js/module1 require.js(第 1650 行) 从templates/scripts//calendar/module2.js 加载scripts/calendar/module2 require.js(第1650行) 完成加载 default/js/module1 require.js(第 1531 行) 初始化 default/js/module1 require.js(第 1662 行) 完成脚本/日历/模块2 require.js 的加载(第 1531 行) 从 templates/module1.js 加载 module1 require.js(第 1650 行) 已完成 jquery require.js 的加载(第 1531 行) 初始化 jquery require.js(第 1662 行) 初始化脚本/jquery.alpha require.js(第 1662 行) 初始化脚本/jquery.beta require.js(第 1662 行) 初始化 main require.js(第 1662 行) “网络错误:404 未找到 - http://local:81/mygsd/templates/module1.js”module1.js【问题讨论】: