我网站的子 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
在 nginx.conf
文件中,尝试 commenting-out disable_symlinks on
行或将其更改为 disable_symlinks off
.
我发现我没有添加Nginx conf文件并将其复制到Nginx Docker容器中。当我这样做时,它工作正常。
有人可以帮忙解决这里的问题吗?
我有一个托管在 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
在 nginx.conf
文件中,尝试 commenting-out disable_symlinks on
行或将其更改为 disable_symlinks off
.
我发现我没有添加Nginx conf文件并将其复制到Nginx Docker容器中。当我这样做时,它工作正常。