2016-11-22 138 views
1

我有一個非常簡單的js服務器(w/webpack)提供簡單的客戶端應用程序。我的配置文件看起來像這樣:Nginx + js服務器

server { 
    listen 80; 

    root /home/user/project/dist; 
    index index.html; 

    server_name project.example.com; 

    location/{ 
     try_files $uri $uri/ =404; 
    } 
} 

我已經試過的try_files多種組合。當它找不到除index.html之外的東西(這是它目前的功能)時,我不希望它達到404。它適用於根(將瀏覽器指向project.example.com OK,但什麼都給人以404

爲了解決這個問題,我已經嘗試設置try_files在多種組合,如:

try_files $uri index.html; try_files $uri $uri/ index.html; try_files $uri /absoulute/path/to/index.html;

他們要麼404家居或給予500,其中,根據nginx的日誌,是一個無限重定向回送。

我不認爲我在做什麼非常複雜,但我迄今爲止所嘗試的所有內容都沒有做到我想要的,這就是允許react-router通過讓try_files將所有內容都提供給index.html來處理所有事情。

任何幫助表示讚賞。

回答

1

nginx URI包含領先的/。如果URI http://project.example.com/index.html作品,那麼try_files語句應該是這樣的:

try_files $uri $uri/ /index.html; 

詳見this document

+0

很明顯,我沒有嘗試每種組合。 :) 非常感謝! – charlie