我是RequireJS的新手,并尝试使用它。我在RequireJS文档中跟踪了一个示例,但是存在一些问题。我可以加载jquery
但不能加载app/shell
。
Root
|__index.html
|__javascripts
|__main.js
|__libs
| |__jquery.js
| |__require.js
|__app
|__shell.js
的index.html
<!DOCTYPE html>
<html>
<head>
<title></title>
<script data-main="javascripts/main.js" src="javascripts/libs/require.js"></script>
</head>
<body>
</body>
</html>
main.js
requirejs.config({
baseUrl:'javascripts/libs',
paths:{
app:'../app'
}
});
require(['jquery','app/shell'],function($,shell){
if($ && shell){
console.info('Scripts loaded');
}
});
shell.js
define(function(){
"use strict";
return{
initModule:function(){
console.info('Module init');
}
}
});
Web控制台错误
"NetworkError: 404 Not Found - http://localhost:3000/javascripts/app../default.htmshell.js"
Error: Script error for: app/shell http://requirejs.org/docs/errors.html#scripterror
Node.js Express控制台错误
GET /javascripts/app../default.htmshell.js 404
答案 0 :(得分:0)
由于您有多个文件夹级别,因此必须将baseUrl设置为应用程序的根目录。如果要使用require(['jquery'])
而不是require(['libs/jquery'])
,则必须在配置中指定它的“别名”。
requirejs.config({
baseUrl:'javascripts',
paths:{
jquery: 'libs/jquery'
}
});
答案 1 :(得分:-2)
尝试在requirejs脚本标记后显式添加main.js文件:
<script src="javascripts/libs/require.js"></script>
<script src="javascripts/main.js"></script>
这将在加载requirejs后同步加载配置文件,从而确保在调用模块之前设置路径。 希望它有所帮助。