2017-07-26 216 views
2

我设置nginx使用React SPA。当我不包含可变路径(/ rsvp /)时,页面加载正常。但是当我尝试(/ rsvp/S0mEtH1NG)时,它会下载索引,清单,css文件...但它实际上并没有将这些内容应用于index.html。我几乎只是看到我的index.html没有实际加载。Nginx的try_files加载空白页面时,通过变量路径

我的配置看起来是这样的:

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。

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

+0

你有一个缺少';'。 –

+0

谢谢! (固定,但只是从手动输入配置) – RollinRight

回答

1

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

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

this caution对使用​​if

+0

嗯...仍然没有运气。我的index.html在这两种情况下都会被加载,而其他文件在网络选项卡上看起来可以正常下载。它只是不适用JavaScript或CSS。 你认为这可能不是一个nginx错误?一切正常,但当我导航到/ rsvp /只是不/ rsvp/*。 – RollinRight

+0

是的,看起来它是反应路由器的问题。尽管对于别名/ try_files的知识,但是提前标记答案是正确的。谢谢。 – RollinRight