Nodejs服务器:无法加载资源:服务器响应状态为404(未找到)

时间:2015-04-04 16:02:12

标签: javascript node.js http heroku express

我在节点中设置了一个Web服务器。

var app = express();
app.use(express.static(PUBLIC_PATH));
server = require('http').createServer(app),
io = require('socket.io').listen(server);

我将公共路径设置为我应用的根公用文件夹,我保留了我的前端,所以当部署服务器时,它是 / app / public

当我尝试打开一个页面时,我在chrome的控制台中看到了这个

  

i无法加载资源:服务器响应状态为404   (未找到)

相关文件是app.js,位于我的 public 文件夹中。我确实看到了Web服务器对该特定文件的请求

  

2015-04-04T15:43:04.208178 + 00:00 heroku [router]:at = info method = GET   路径=" /style.css"主机= hive-badescuga.herokuapp.com   request_id = 2be0334e-e968-4397-8c2e-9c65c85fea22 fwd =" 188.25.247.211"   dyno = web.1 connect = 1ms service = 6ms status = 304 bytes = 236

     

2015-04-04T15:43:04.203415 + 00:00 heroku [router]:at = info method = GET   路径=" /app.js"主机= hive-badescuga.herokuapp.com   request_id = fc8c529c-7641-4df2-9b13-5fee9e1af365 fwd =" 188.25.247.211"   dyno = web.1 connect = 1ms service = 7ms status = 404 bytes = 217

     

2015-04-04T15:43:09.152566 + 00:00 heroku [router]:at = info method = GET   路径=" /style.css"主机= hive-badescuga.herokuapp.com   request_id = b89ded8e-5433-4b57-8c80-c2e7407d31b0 fwd =" 188.25.247.211"   dyno = web.1 connect = 1ms service = 6ms status = 304 bytes = 236

有什么问题?

更新

随着我进一步调试,我看到与我的app.js在同一个根目录中的css(无法加载)会被加载。这是我的HTML:

<link rel="stylesheet" href="/style.css">
<script type='text/javascript' src="https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true&libraries=places"></script>
<script src="/app.js"></script>

所以当app.js没有加载时,style.css会被加载(因为它找不到),并且它们位于同一个文件夹中。

2 个答案:

答案 0 :(得分:0)

我不知道它是否有帮助,但可能你应该写: process.env.PUBLIC_PATH。另外,我不知道你是否有这个:var express = require(&#39; express&#39;);

我有这个: app.use(express.static(path.join(__ dirname,&#39; views&#39;)));

答案 1 :(得分:0)

所有内容都已修复,如果app.js git被忽略,那么它在本地工作但没有上传。