Настройка конфига - NodeJS не видит css и графику
На сервере висит NGINX, раздающий статику по 80 порту из папки /usr/www/site, так же висит NodeJS на 8000 порту, который раздаёт файлы из папки /usr/www/mop. Проблема выражается так, что статика от NGINX отдаётся нормально, но при попытке использовать NodeJS-страницы я получаю только саму страницу и вижу лишь текст, но графика и css не загружаются. В консоли браузера - 404, в логах NGINX - "/usr/www/site/stylesheets/main.css" failed (2: No such file or directory), то есть, графику и css оно пытается брать из расположения статического сайта NGINX, а не с директории сервера NodeJS.
Конфиг NGINX:
server {
listen 80;
root /usr/www/site/;
index index.html;
error_page 500 502 503 504 /50x.html;
error_page 400 401 402 403 404 /40x.html;
location = /50x.html {
root /var/www/errors;
}
location = /40x.html {
root /var/www/errors;
}
server_name 127.0.0.1;
location /mop {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
}
location / {
root /usr/www/site/;
autoindex off;
}
}
Код сервера NodeJS:
const express = require('express')
const bodyParses = require('body-parser');
const path = require('path');
const { request } = require('express');
const app = express()
const port = 8000
app.listen(8000);
app.set('view engine', 'ejs');
app.use(bodyParses.urlencoded({extended: true}));
app.get('/mop', (req, res) => {
res.render('index');
});
app.get('/mop/o-nas', (req, res) => {
res.render('o-nas');
});
module.exports = app;
Так как я не очень разбираюсь, и, возможно, не вижу явной проблемы, то прошу помощи у вас)
Ответы (1 шт):
server {
listen 80;
root /usr/www/site/;
...
location / {
try_files $uri @mop_files;
}
location @mop_files {
root /usr/www/mop/;
try_files $uri =404;
}
}