reactjs-nginx尝试根据uri在目录中查找index.html

我有一个简单的配置让nginx服务我的React应用程序:

server {
    listen 80;
    root /usr/share/nginx/html;

    location / {
        try_files $uri $uri/ /index.html;
    }
}

我有路线/并登录.当我通过React-Router从localhost /登录到localhost /时,一切正常.但是,当我在浏览器中键入localhost / login时,出现404错误.

确切地说,对于localhost / login,我在nginx控制台中得到“ /usr/share / nginx / html / login”失败(2:没有这样的文件或目录).
并且对于localhost / login /我得到的是“ /usr/share/nginx/html/login/index.html”,找不到(2:没有这样的文件或目录)

我不明白为什么Nginx会继续在/usr/share / nginx / html / login /中而不是/usr/share / nginx / html /中寻找index.html.有什么想法我做错了吗?

解决方法:

好的,我的不好,看来我只是搞砸了配置文件.
在我的Dockerfile中,我做了以下工作

COPY nginx/default.conf /etc/nginx/conf.default 

而很明显,nginx不在conf.default文件中寻找配置.

所以我创建了nginx.conf文件:

events {
    worker_connections  1024;
}

http {
    server {
        listen 80;
        root /usr/share/nginx/html;

        location / {
            try_files $uri $uri/ /index.html;
        }
    }
}

并在Dockerfile中写道:

COPY nginx/nginx.conf /etc/nginx/nginx.conf

那解决了问题.感谢帮助!

上一篇:javascript-检查变量是否在全局范围内设置?


下一篇:javascript-React SSR,NextJS与Chrome无头预渲染