节点不向远程客户端

时间:2015-11-19 22:05:53

标签: node.js http express vagrant

我是Node新手。我尝试了一个hello world Express / Node应用程序,其中我在静态css文件中显示一个小文本和一些静态图像以及一些样式。我在我拥有的计算机上使用Vagrant在托管虚拟机上运行我的应用程序。

我面临的问题是,当我在同一局域网中从另一台远程计算机尝试应用程序时,某些图像不会显示。相应的GET请求记录在具有200状态代码的节点中,但我的浏览器正在等待答案。我尝试过Firefox,Safari和Chrome。奇怪的是,如果我从托管虚拟机但在虚拟机之外的同一台计算机上调用相同的应用程序,那么我就能看到图像。

此外,如果我在heroku帐户上部署相同的应用程序,我可以看到计算机中无法显示的所有图像。

所以我真的不明白什么是错的。

如果您之前遇到类似问题,请告诉我。

这是代码

var express = require('express');
var logger = require('morgan');
var path = require('path');
var morgan = require('morgan');

var app = express();
var router = express.Router();

app.set('views', path.join(__dirname, 'views'));
app.set('view engine', 'jade');

app.use(router);

app.use(logger('dev'));

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

router.all('/', function (req, res, next) {
  console.log('Someone made a request!');
  next();
});

router.get('/', function (req, res) {
  res.render('index');
});

app.listen(3000);
module.exports = app;

这是简单的页面布局。这两个图像位于同一个文件夹中。

doctype html
html(lang="en")
  head
    title Express Routing
  body
    h1 Express Routing
    p The Definitive Guide
    img(src='/images/test.ico')
    img(src='/images/giraffe.jpg')

当我调用应用程序click here时,这是网络跟踪。

最终,我尝试使用现有公共git存储库中的另一个示例应用程序,并且当我在虚拟机上部署它时遇到了同样的问题(并非所有静态文件都是从REMOTE机器下载的,而如果我打电话,它们都会下载来自主机的应用程序).​​.正如您所看到的3个静态文件正在等待下载: click here

当我使用Rails而不是Node时,为了您的信息,我没有这样的问题。

1 个答案:

答案 0 :(得分:0)

我安装了最新的ubuntu更新后错误消失了。

谢谢你的时间!