Nginx没有提供正确的资源

时间:2019-12-19 14:46:18

标签: nginx

我的用例非常简单:

/var/www
├── public/
│   └── index.html
└── app/
    ├── css/
    ├── js/
    └── index.html

我想将public/index.html作为未指向app/(.*)的任何请求的后备目标网页,并在访问app/时提供mydomain.local/app的内容

此配置有什么问题?

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

    server_name mydomain.local;

    index index.html;

    location / {
        root /var/www/public/;
    }

    location /app {
        root /var/www/;
    }
}

1 个答案:

答案 0 :(得分:0)

这是一种使用try_files指令的方法:

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

    server_name mydomain.local;

    index index.html;

    location / {
        root /var/www/public/;
        try_files $uri /index.html;
    }

    location /app {
        root /var/www/;
    }
}

Nginx将尝试匹配$ uri,如果不匹配,它将进行内部重定向到index.html

来源:https://docs.nginx.com/nginx/admin-guide/web-server/serving-static-content/#trying-several-options