我网站的子 URL 未在 Linux、Azure 和 Nginx 上加载 - 找不到 404

sub URLs to my website not loading on Linux, Azure and Nginx - 404 not found

有人可以帮忙解决这里的问题吗?

我有一个托管在 Azure Web App 上的 React Web 应用程序。已部署成功。

我的问题是,例如,如果我访问 myweb.azurewebsites.net 上的网站,它加载得很好。如果我单击“登录”按钮之类的按钮,它会将我重定向到 myweb.azurewebsites.net/signin.

但是,如果我在浏览器中手动输入 myweb.azurewebsites.net/signin,则会出现“找不到 Nginx”错误。

有人可以帮助解决问题所在吗?我怀疑它在 Azure and/or Nginx.

之间

Nginx not found 404 error 表示 Nginx 无法找到您的网络浏览器请求的资源。

  • 检查您的服务器上是否存在网站根目录。
  • 确保您的网站文件存储在正确的目录中。

要解决“Nginx 未找到 404 错误”,如果有帮助,请查找以下解决方法:

The most likely issue is that you're not telling Nginx to forward other requests to the /index.html of your application, which makes it so your other pages can't be loaded directly and display a 404 error. To fix this, you'll need to make a small change to your Nginx configuration files.

确保您的 nginx.conf 文件如下所示:

worker_processes 1;
events {
worker_connections 1024;
}

http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;

#gzip on;
server {
listen 80;
server_name localhost;

location / {
root /home/user_name/Documents/your_proj; # You need to provide here the path of your "index.html" file
index index.html index.htm;
}
}

如果 解决方法 1 不起作用,请尝试如下更改 location segment

location / {

if (!-e $request_filename){

rewrite ^(.*)$ /index.html break;
}
}

“设置 > 常规设置 > 启动命令” 上配置启动命令。 将路径更改为构建路径。

要重定向所有查询,请使用 --spa 选项:

pm2 serve /home/site/wwwroot/client/build --no-daemon --spa

Workaround4:

nginx.conf 文件中,尝试 commenting-out disable_symlinks on 行或将其更改为 disable_symlinks off.

我发现我没有添加Nginx conf文件并将其复制到Nginx Docker容器中。当我这样做时,它工作正常。