2017-04-08 64 views
3

我創建使用mojolicious一個簡單的API,但我剛剛從阿帕奇遷移到Nginx和無法弄清楚如何處理URL正確Mojolicious沒有捕捉URL(僅基本URL)

這裏是我的服務器模塊配置文件

server { 
    listen 80; 
    listen [::]:80; 
    root /var/www/example.com/public_html; 
    index index.pl index.html index.htm index.nginx-debian.html; 

    server_name example.com www.example.com; 

    location/{ 
      gzip off; 
      include /etc/nginx/fastcgi_params; 
      fastcgi_pass 127.0.0.1:8090; 
      fastcgi_param SCRIPT_FILENAME /var/www/example/public_html/$fastcgi_script_name; 
     } 
} 

它由Mojolicious處理,但我得到以下結果。

Method: GET 
URL:  
Base URL: http://example.com/clients/ 

正如您所看到的,基本URL被捕獲,但URL爲空。

我的模式是

Pattern Methods Name 
/clients GET clients 

有什麼不對?我如何正確處理請求?

回答

3

我面臨同樣的問題。我找到了以下解決方案。

app->hook(before_dispatch => sub { 
     my $c = shift; 
     $c->tx->req->url->path->{'path'} = @{$c->tx->req->env}{'REQUEST_URI'}; 
    }); 
app->start; 

這是一個快速和骯髒的解決方案,但它的工作原理。

希望這會有所幫助。

+0

它的作品!謝謝 !!!感謝你的幫助 ! – bxfvgekd