Express doen不会将javascript加载到客户端

VB_*_*VB_ 2 javascript node.js requirejs express

我想将requireJS用于客户端代码.我的文件结构是:

ProjectRoot
 |-server.js
 |-public/
    |-index.html
    |-js/
       |-app.js
       |-lib/
          |-require.min.js
          |-underscore.js
          |-backbone.js
          |-raphael.js
       |-app/
          |-..
Run Code Online (Sandbox Code Playgroud)

server.js:

var express = require('express');
var app = express();
app.use('/', express.static(__dirname + '/public'));
app.listen(8090);
Run Code Online (Sandbox Code Playgroud)

index.html的:

<!DOCTYPE html>
<html>
  <body>
  </body>
  <script src="js/lib/require.min.js" data-main="js/app.js" />
</html>
Run Code Online (Sandbox Code Playgroud)

app.js:

require.config({
    paths: {
        'jquery': 'lib/jquery',
        'raphael': 'lib/raphael'
    },
    shim: {
        'lib/underscore': {
            exports: '_'
        },
        'lib/backbone': {
            deps: ["lib/underscore", "jquery"],
            exports: 'Backbone'
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

问题:当我去的时候localhost:8090我只得到index.html没有任何.js文件

问题:为什么Express不向客户端发送javascript?

PS但是当我去的时候,http://localhost:8090/js/app.js我得到了我的app.js

我也用node server.js命令启动我的应用程序

问题2:我的应用无法加载data-main文件.而不是要求localhost:8090/js/app.js它要求localhost:8090/js/app.app.为什么app.app?

Haz*_*ass 6

我认为问题出在静态模块中,你的nodejs代码应该是这样的:

var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
app.listen(8090);
Run Code Online (Sandbox Code Playgroud)

问题在于:

Q1: 我认为问题可能来自空内容模型,所以请尽量使用

 <script></script>
Run Code Online (Sandbox Code Playgroud)

代替

<script />
Run Code Online (Sandbox Code Playgroud)

Q2: 我认为这是require.js版本中的一个问题,请阅读此内容以获取更多信息.