2017-07-26 215 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