我使用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
有什么问题?我该如何正确处理请求?
答案 0 :(得分:2)
我遇到了同样的问题。我找到了以下解决方案。
app->hook(before_dispatch => sub {
my $c = shift;
$c->tx->req->url->path->{'path'} = @{$c->tx->req->env}{'REQUEST_URI'};
});
app->start;
这是一个快速而肮脏的解决方案,但它确实有效。
希望这有帮助。