Nginx Unicorn AngularJS html5网址配置

时间:2015-06-18 21:38:17

标签: ruby-on-rails angularjs nginx angular-ui-router unicorn

我想在Angular UI-router中添加漂亮的URL。我在Nailsx + Unicorn上使用Angular JS作为前端的Rails应用程序。

我想拥有像mysite / a / b / c这样漂亮的URL,没有'#'而且没有hashbang。当我将nginx的位置更改为:

server {
    server_name yoursite.com;
    root /path/to/app;

    location / {
        try_files $uri $uri/ @unicorn;
    }
}

Unicorn会抛出此错误:

  

“/ path / to / app”的目录索引被禁止

关于如何设置nginx重定向的任何想法?给我的应用程序路径提供chmod并不是一个很好的解决方案我相信..

修改:问题在于使用try_files $ uri / index @unicorn,它可以正常工作,例如url.com/a/b。但是当我刷新时,它会自动将我重定向到root url.com。 UI路由器建议使用try_files $ uri $ uri / /index.html,但是当我这样做时,我得到nginx拒绝访问。文件夹/ p​​ath / to / app属于用户'deploy',因此它不是chmod问题..

1 个答案:

答案 0 :(得分:0)

终于解决了!这是我的错误,因为我用角度运行我的应用程序我在rails routes.rb文件中忘记了这一行:

get '*path' => '/'

将其更改为

get '*path' => 'layouts#index' 

其中布局#index是我的Angular布局,现在刷新url.com/a/b后,url会保留url.com/a/b并呈现相应的路径。

在nginx我的配置仍然是:

location /{
    try_files $uri @unicorn;
}