托管静态Node.js页面

时间:2016-12-06 23:02:57

标签: javascript css node.js nginx

我正在尝试了解Node.js,我已经通过Lynda.com上的指南编写了一个简单的Node.js page和express和ejs。我将页面托管在Amazon AWS服务器上并安装了Nginx。当我运行节点应用程序时,我可以访问IP:3000的页面。我还根据几个不同的指南设置了Nginx,将服务器IP /重定向到端口3000.但是当我尝试以IP访问页面时,没有任何图像或CSS出现。

我过去在学校使用Ruby on Rails建立了一些网页,我假设这是一个开发与生产问题。我找到的大多数指南/说明都显示为一个简单的hello world应用程序设置Nginx而没有任何图像或CSS。有人可以指导我找到合适的资源来完成我在这里尝试做的事情吗?

编辑:这是我的app.js和我的两条路线 app.js

var express = require('express');
var reload = require('reload');
var app = express();
var clientFile = require('./data/clients.json');
var instructionFile = require('./data/instructions.json');

app.set('port', process.env.PORT || 3000);
app.set('clientData', clientFile);
app.set('instructionData', instructionFile);
app.set('view engine', 'ejs');
app.set('views', './views');

app.locals.siteTitle = 'Roux Meetups';

app.use(express.static('./public'));
app.use(require('./routes/index'));
app.use(require('./routes/instructions'));

var server = app.listen(app.get('port'), function() {
  console.log('Listening on port ' + app.get('port'));
});

reload(server, app);

var express = require('express');
var router = express.Router();

路线1

router.get('/', function(req, res) {
  var clients = req.app.get('clientData');
  var clientPhotos = clients.images;
  var clientAddresses = clients.sites;

  res.render('index', {
    pageTitle: 'Home',
    clients: clientPhotos,
    sites: clientAddresses,
    pageID: 'home'
  });
});

module.exports = router;

路线2

var express = require('express');
var router = express.Router();

router.get('/instructions', function(req, res) {
  var clients = req.app.get('clientData');
  var clientPhotos = clients.images;
  var clientAddresses = clients.sites;

  var instructions = req.app.get('instructionData');
  var instructPhotos = instructions.images;

  res.render('instructions', {
    pageTitle: 'Instructions',
    clients: clientPhotos,
    sites: clientAddresses,
    instructs: instructPhotos,
    pageID: 'instructions'
  });
});

module.exports = router;

我也只使用以下内容编辑了我的/ etc / nginx / sites-available / default for nginx

server {
listen 80 default_server;
listen[::]:80 default_server;

root /var/www/html;

index index.html index.html index.nginx-devian.html;

server_name _;

location / {
    proxy_pass http://localhost:3000;
    try_files $uri $uri/ = 404;
}
}

1 个答案:

答案 0 :(得分:0)

所以我的问题是我的/ etc / nginx / sites-available / default配置错了。我用垃圾编辑了它,完全忘记了。如果其他人有类似的问题,请留下这个。我从https://www.digitalocean.com/community/tutorials/how-to-set-up-a-node-js-application-for-production-on-ubuntu-14-04

获得的正确nginx配置
相关问题