2016-11-22 143 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