提供组合的JavaScript文件

在html中:

<script type="text/javascript" src="/layout/load_scripts?jquery.validate.min.js,jquery-1.5.1.min.js,jquery-ui-1.8.11.min.js,jquery.unobtrusive-ajax.min.js,jquery.validate.unobtrusive.min.js"></script> 

在服务器上:

 load_scripts: function (context) { var combined_script = ''; var script_names = context.parameters.split(','); for (var i = 0; i < script_names.length; i++) { combined_script += fs.readFileSync('./content/scripts/global/' + script_names[i]); } context.response.writeHead(200, { 'Content-Type': 'application/javascript' }); context.response.end(combined_script); } 

但是脚本不加载。 请帮忙

为什么你会使用readFileSync这样的东西? 您可能正在同时读取所有文件。 我可能会解决这个asynchronous库,并有一个更多的function的方法。

 async.map(['file1','file2','file3'], fs.readFile, function(err, results){ results.join(''); // This is your string. }); 

有关Async GitHub页面的更多信息。

乍一看,我会这样debugging:

  1. 写一些静态文本,并尝试打印。
  2. 确认fs.readFileSync()实际上是读取文件…(打印到控制台应该工作)

而且,它看起来不像你在任何地方返回你的组合脚本。