Mojolicious没有捕获URL(仅限基本URL)

时间:2017-04-08 05:46:54

标签: perl nginx mojolicious

我使用mojolicious创建了一个简单的API,但我刚刚从Apache迁移到Nginx,无法弄清楚如何正确处理网址

这是我的服务器块配置文件

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/

您可以看到捕获了基本网址,但网址为空。

我的模式是

Pattern Methods Name
/clients GET clients

有什么问题?我该如何正确处理请求?

1 个答案:

答案 0 :(得分:2)

我遇到了同样的问题。我找到了以下解决方案。

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

这是一个快速而肮脏的解决方案,但它确实有效。

希望这有帮助。