Я пытаюсь узнать о Node.js, и я написал простой Node.js page с помощью express и ejs, следуя руководству на Lynda.com. У меня есть страница, размещенная на сервере Amazon AWS, и установлен Nginx. Я могу получить доступ к странице на IP: 3000, когда я запускаю приложение узла. Я также создал Nginx, следуя нескольким различным руководствам для перенаправления серверов IP/на порт 3000. Однако, когда я пытаюсь получить доступ к странице на IP/ни один из изображений или CSS не появляется.Хостинг статической страницы Node.js
В прошлом я создал несколько веб-страниц для школы, используя Ruby on Rails, и я предполагаю, что это проблема разработки или производства. Большинство руководств/инструкций, которые я нахожу, просто показывают настройку Nginx для простого приложения hello world без каких-либо изображений или CSS. Может ли кто-нибудь направить меня на правильный ресурс, чтобы выполнить то, что я пытаюсь сделать здесь?
Edit: Вот мои 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;
я только отредактированный my/etc/nginx/sites-available/default для 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;
}
}
Вы проверили элемент в браузере? проверьте его, посмотрите местоположение фотографии css, а затем вы поймете проблему \ –
или попробуйте эту конфигурацию сервера. 'upstream nodejs { server localhost: 3000; } сервер { слушать 8080; имя_сервера localhost; root ~/workspace/test/app; местоположение/{ try_files $ uri $ uri/@nodejs; } местонахождение @nodejs { proxy_redirect off; proxy_http_version 1.1; proxy_pass http: // nodejs; proxy_set_header Host $ host; proxy_set_header X-Real-IP $ remote_addr; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; } } ' –
Эта конфигурация сервера для конфигурации nginx? Почему относительные объекты image/css работают нормально, если я перейду к IP /: 3000, а не когда я перейду к IP/и перенаправляю nginx на порт 3000? Я пытаюсь понять, как это все работает вместе, но мне не хватает чего-то, что кажется. – jawknee530