问题:
我有一个使用 requireJS 的简单演示应用程序。当require.min.js
脚本加载时,它尝试加载入口点脚本。但是,问题是,而不是 localhost:8090/js/app.js
它尝试加载 localhost:8090/js/app.app
并失败。
演示:您可以在GitHub查看整个应用程序。 .
=== 仅当您不喜欢 GutHub 时,这是我的代码 ===
文件结构
ProjectRoot
|-server.js
|-public/
|-index.html
|-js/
|-app.js
|-lib/
|-require.min.js
|-underscore.js
|-backbone.js
|-raphael.js
|-app/
|-..
server.js:
var express = require('express');
var app = express();
app.use('/', express.static(__dirname + '/public'));
app.listen(8090);
index.html:
<!DOCTYPE html>
<html>
<body>
</body>
<script src="js/lib/require.min.js" data-main="js/app.js"></script>
</html>
app.js:
require.config({
paths: {
'jquery': 'lib/jquery',
'raphael': 'lib/raphael'
},
shim: {
'lib/underscore': {
exports: '_'
},
'lib/backbone': {
deps: ["lib/underscore", "jquery"],
exports: 'Backbone'
}
}
});
最佳答案
应用程序中包含的 require.js 版本有问题。使用 CDN 就可以了。
您的代码中的版本与 CDN 上的实际 .min 版本不匹配,这意味着它已被修改并包含 .app
<script src="//cdnjs.cloudflare.com/ajax/libs/require.js/2.1.15/require.js" data-main="js/app"></script>
关于javascript - RequireJS 搜索 app.app 而不是 app.js(其中 app.js 是 data-main 中指定的入口点),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26816008/