关于base的默认路径:
【官方说明】: 模块系统的基础路径即 base 的默认值,与 sea.js 的访问路径相关: 如果 sea.js 的访问路径是: http://example.com/assets/sea.js则 base 路径为: http://example.com/assets/当 sea.js 的访问路径中含有版本号时,base 不会包含 seajs/x.y.z 字串。 当 sea.js 有多个版本时,这样会很方便。如果 sea.js 的路径是: http://example.com/assets/seajs/1.0.0/sea.js则 base 路径是: http://example.com/assets/seajs的默认路径依赖:127.0.0.1/foo/assets/seajs/sea.js,当前sea.js所在的目录或seajs文件夹所在的目录【assets/】其他路径的话需要重新设置路径,比如127.0.0.1/foo/public/base/sea.js我要设置public为默认路径,在config里设置base:’./public’‘./‘是当前默认目录,当前默认目录是网站根目录开始当然,也可以手工配置 base 路径:seajs.config({ base: 'http://code.jquery.com/'});在模块代码里:require.resolve('jquery');// => http://code.jquery.com/jquery.js【注意】:一般请不要配置 base 路径,把 sea.js 放在合适的路径往往更简单一致。【参考】:https://github.com/seajs/seajs/issues/258 引入后的调试方法:alert(require.resolve('jquery'));alert($); 常见问题问题一:改变了jquery.js存放的目录后,文件已经加载,但无法引用。 这个是因为路径于不匹配导致的。 你用的是从seajs官方下载的jquery源,它是打包好的cmd模块,只不过比较特殊而已。ID 是 jquery/jquery/1.10.1/jquery,seajs的define默认ID是于路径想匹配的,所以改变路径后就引用不到。 如果是非官方的jquery源,你就必须自己处理,暴露出方法接口: jquery.jsdefine(function(require,exports,module) { module.exports = jQuery;});
define(function(require, exports, module) { var $ = require('jquery');})
define(function(require, exports, module) { require('jquery');})