#javascript #node.js #express
Вопрос:
Я использую nginx в качестве веб-сервера с cloudflare в качестве ddns.
Каталог JS и изображений, похоже, загружается просто отлично localhost:5000/
. Однако режиссеры отсутствуют, когда я смотрю его на aarth.in. Существует много решений по таким вопросам, но ни одно из них не сработало для меня. Любая помощь будет признательна!
Мой каталог выглядит следующим образом
- node_modules
- server.js
- public
- index.html
- images/
- base.png
- sub
- scripts
- base.js
- sub
- css
- base.css
- sub/
- sub.css
server.js
const express = require('express');
const app = express();
app.use(express.static("public"));
app.get((req, res) => {
});
app.listen(5000, () => console.log('http://localhost:5000/'));
404 ошибки, которые я вижу в консоли браузера.
Комментарии:
1. Каковы ваши
nginx
конфигурации?2. Ваша догадка верна, произошла неправильная конфигурация в
nginx
Ответ №1:
Для тех, кто столкнулся с той же проблемой, оказывается, что ошибки server.js
не было . Мне пришлось изменить конфигурацию nginx по умолчанию и закомментировать корень.
Вот моя конфигурация:
server {
listen 80 default_server;
listen [::]:80 default_server;
#root /var/www/html; --> Commenting this did the trick!
server_name example.com www.example.com;
location / {
proxy_pass http://localhost:YOUR_PORT;
try_files $uri $uri/ =404;
}
#Nginx handles all the static files instead of node
location ~^/(images|css|fonts|js|icons|scss) {
expires 1M;
access_log off;
add_header Cache-Control "public";
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods GET;
add_header Access-Control-Allow-Headers X-Requested-With,content-type;
add_header Access-Control-Allow-Credentials true;
root /home/pi/Documents/Website/public;
}
}