express和nginx-加载html文件,但无法为资产提供服务

express和nginx-加载html文件,但无法为资产提供服务,express,nginx,Express,Nginx,我正在尝试运行端口3000处的express服务器。当我访问服务器的IP时,我能够加载html页面,但是它似乎无法找到我链接到的具有.js和.css文件的资产-这与public中的index.html位于同一目录中。我的配置中缺少什么吗 快速设置 nginx设置 在nginx配置中 try_files $uri $uri/ =404; 意味着nginx将尝试在您的根文件夹中查找静态资源,然后在最后使用/进行尝试,如果尚未找到任何内容,将给出404 Not found 它永远不会到达代理通行证

我正在尝试运行端口3000处的express服务器。当我访问服务器的IP时,我能够加载html页面,但是它似乎无法找到我链接到的具有.js和.css文件的资产-这与public中的index.html位于同一目录中。我的配置中缺少什么吗

快速设置

nginx设置


在nginx配置中

try_files $uri $uri/ =404;
意味着nginx将尝试在您的根文件夹中查找静态资源,然后在最后使用/进行尝试,如果尚未找到任何内容,将给出404 Not found

它永远不会到达代理通行证

正确的配置方法如下:

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

    root /var/www/my_site/public;
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
      try_files $uri $uri/ @nodejs;
    }

    location @nodejs {
      proxy_pass http://127.0.0.1:3000;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }
}
现在,它将在您的根文件夹中查找静态文件,然后将其传递到节点服务器。

尝试从express中删除app.use和app.get,以确认index.html文件是否由nginx提供。
try_files $uri $uri/ =404;
server {
    listen 80 default_server;
    listen [::]:80 default_server;

    root /var/www/my_site/public;
    index index.html index.htm index.nginx-debian.html;

    server_name _;

    location / {
      try_files $uri $uri/ @nodejs;
    }

    location @nodejs {
      proxy_pass http://127.0.0.1:3000;
      proxy_http_version 1.1;
      proxy_set_header Upgrade $http_upgrade;
      proxy_set_header Connection 'upgrade';
      proxy_set_header Host $host;
      proxy_cache_bypass $http_upgrade;
    }
}