2012-07-18 19 views
1

在HTML:服務相結合的JavaScript文件

<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); 
} 

但劇本不加載。請幫助

回答

1

爲什麼你會使用readFileSync這樣的東西?您可能正在同時閱讀所有文件。我可能會用異步庫解決這個問題,並且有更多的功能。

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

有關Async GitHub page的更多信息。

+0

Thanks @Pickels我會在回家時執行此操作 – karaxuna 2012-07-19 06:01:40

1

乍看之下,我會調試這樣的:

  1. 寫一些靜態文本,並嘗試打印。
  2. 確認fs.readFileSync()實際讀取文件...(打印到控制檯應該工作)

而且也,它看起來並不像你隨時隨地返回合併後的腳本。

+0

fs.readFileSync()正在讀取文件。但是當我在end()函數中編寫靜態文本時,問題仍然存在 – karaxuna 2012-07-18 20:33:04