Express未将javascript加载到客户端
我想对客户端代码使用requireJS。我的文件结构是:Express未将javascript加载到客户端,javascript,node.js,express,requirejs,Javascript,Node.js,Express,Requirejs,我想对客户端代码使用requireJS。我的文件结构是: ProjectRoot |-server.js |-public/ |-index.html |-js/ |-app.js |-lib/ |-require.min.js |-underscore.js |-backbone.js |-raphael.js |-app/ |-..
ProjectRoot
|-server.js
|-public/
|-index.html
|-js/
|-app.js
|-lib/
|-require.min.js
|-underscore.js
|-backbone.js
|-raphael.js
|-app/
|-..
server.js:
index.html:
<!DOCTYPE html>
<html>
<body>
</body>
<script src="js/lib/require.min.js" data-main="js/app.js" />
</html>
require.config({
paths: {
'jquery': 'lib/jquery',
'raphael': 'lib/raphael'
},
shim: {
'lib/underscore': {
exports: '_'
},
'lib/backbone': {
deps: ["lib/underscore", "jquery"],
exports: 'Backbone'
}
}
});
问题:当我转到localhost:8090
时,我只得到index.html
而没有任何.js文件
问题:为什么Express不向客户端发送javascript
p.S.但是当我进入http://localhost:8090/js/app.js
我得到了我的app.js
我还使用node server.js
命令启动我的应用程序
问题2:我的应用程序无法加载
数据主文件。它不是请求localhost:8090/js/app.js
,而是请求localhost:8090/js/app.app
。为什么是app.app?我认为问题出在静态模块中,您的nodejs代码应该是这样的:
var express = require('express');
var app = express();
app.use(express.static(__dirname + '/public'));
app.listen(8090);
问题在于:
Q1:
我认为问题可能来自空内容模型,因此请尝试使用
<script></script>
而不是
<script />
Q2:
我认为这是require.js版本中的一个问题,请阅读以了解更多信息。您查看过Browserify吗?它将为您节省一些时间和样板文件。@Elclandrs这是requirejs的替代方案吗?我不想因为这样愚蠢的错误而放弃)希望你能帮助我me@elclanrs问题是express没有向客户端发送require.min.js
。我想这就是为什么它不起作用的原因。加载页面时,你是否尝试过在chrome dev tools中查看网络选项卡或在FF中查看Firebug?我猜可能是重复的,我在这里复制了您的环境,并使用自动关闭标签,未加载任何内容,但如果我将其更改为
,则它可以工作。@HazenHagrass请查看我的quesiton@HazenHagrass它仍在查找main.app
。请查看@V_B添加此应用程序的原因。使用('js/app.app',express.static('u_dirname+'/public/js/app.js');这是不正确的,我想你应该删除我尝试过的这条线。反正那也不行。只是不小心推了一下,我在回答第二季度的问题时附加了一个链接,我相信它会解决你的问题。
<script />