express和nginx-加载html文件,但无法为资产提供服务
我正在尝试运行端口3000处的express服务器。当我访问服务器的IP时,我能够加载html页面,但是它似乎无法找到我链接到的具有.js和.css文件的资产-这与public中的index.html位于同一目录中。我的配置中缺少什么吗 快速设置 nginx设置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 它永远不会到达代理通行证
在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;
}
}