Nginx try_files 使用变量路径传递时加载空白页

Nginx try_files loads blank page when passed with variable path

我正在设置 nginx 以使用 React SPA。当我不包含可变路径 (/rsvp/) 时,页面加载正常。但是当我尝试 (/rsvp/S0mEtH1NG) 时,它会下载索引、清单、css 文件……但它实际上并没有将这些东西应用到 index.html。我几乎只看到我的 index.html 没有实际加载。

我的配置如下所示:

server {
    listen 80;
    server_name something.com;

    location / {
        root /srv/something.com/webroot;
        index index.html;
    }

    location /rsvp {
        alias /srv/rsvp/build;
        try_files $uri $uri/ /rsvp/index.html;
    }
}

如果我有 try_files $uri $uri/ /index.html,它将加载根 (/) 的 index.html,但有一个类似的问题,即它不使用任何 css。

感谢您的帮助,非常感谢!

有一个 long standing issuealiastry_files。我会避免在同一个块中使用这些指令。尝试:

location /rsvp {
    alias /srv/rsvp/build;
    if (!-e $request_filename) { rewrite ^ /rsvp/index.html? last; }
}

参见 this caution 关于 if 的使用。