2013-07-18 38 views
1

我开始使用角度的快速应用程序node.js。在cloud9上创建应用程序时,一切正常。Node.js快速服务index.html而不是静态文件

我刚刚在我的EC2实例上发布了应用程序,现在节点总是提供index.html而不是我的静态文件......当我查看铬调试网络时,我看到加载的所有js文件(状态200),但是当我预览他们,我的index.html文件...我的js文件的类型也设置为文本/ html ...

这是我的小server.js(没有路由,因为我伪造我的角度数据,所以现在没有电话给服务器......)

var express = require('express'), 
path = require('path'), 
http = require('http'), 
fs = require('fs'); 

var app = express(); 

var logFile = fs.createWriteStream('./logger/express.log', {flags: 'a'}); //use {flags: 'w'} to open in write mode 

app.configure(function() { 
    app.set('port', process.env.PORT || 3000); 
    app.use(express.logger({stream: logFile})); 
    app.use(express.bodyParser()), 
    app.use(express.static(path.join(__dirname, 'public'))); 
}); 

/*app.get('/events', eventRoute.getEvents); 
app.post('/events', eventRoute.saveEvent);*/ 

http.createServer(app).listen(app.get('port'), function() { 
    console.log("Express server listening on port " + app.get('port')); 
}); 

正如我前面所说,一切工作正常cloud9(现在不能尝试在本地......)。

有没有人有什么问题的线索?

感谢

多米尼克

PS:我忘了提,这是我的CSS文件一样!

编辑:这里是我的意思的小图片! enter image description here

而当我看到任何文件的预览我得到enter image description here

EDIT2:我只是删除我的所有文件,并再次上传它们。同样的问题!我真的需要这个帮助!

佛问题的现场演示,打that site

+0

如何jquery.min.js显示正确的吗?您还可以检查公共目录中的所有文件是否有效,而不是您的index.html – user568109

+0

jQuery.min.js的副本加载正确,因为它是从cdn加载的,而不是由我的服务器提供服务。我会尽快查看我的js文件是否仍然像原始文件,而不是index.html的副本。 (没有ssh acces在工作:/) – Doum

+0

我没有检查,我的JS/CSS文件没问题。包含他们应该包含的内容。任何人有想法解决这个问题? – Doum

回答

1

经过几个小时的研究后,我终于找到了它!

问题根本不是代码相关!我正在打一个新的ec2实例,并且没有将80端口路由到我的node.js应用程序(81 **)。

我基本上只是运行这个命令,一切开始工作就好了。

的iptables -t NAT -A PREROUTING -p tcp的--dport 80 -j REDIRECT --to 81 **

感谢大家

4

你能对你的意思是你的“静态文件”详细说明了什么?

在这条线:

app.use(express.static(path.join(__dirname, 'public'))); 

你有快路由到服务于“公共”目录的静态文件的所有文件。默认情况下,如果该目录被调用,express.static将提供'index.html'。由于您正在为'/'提供'公共'目录,因此它会提供index.html。

编辑:我不知道,如果是这样的问题,但是这部分代码是多余的:

http.createServer(app).listen() 

你可以说:

app.listen([port], [callback]); 

因为调用快车()创建一个服务器。 希望有所帮助。

+0

静态文件我的意思是我的Javascript文件和我的样式表文件。 我在我的根目录中有server.js,然后是/ Public/js/Public/css。 我怎样才能让它在调用'/'时为index.html服务,然后提供js文件? – Doum

+0

我删除了http.createServer!正如你所说,它是多余的! 不幸的是,问题仍然没有解决... – Doum

相关问题