让Mojolicious在OpenShift上工作

时间:2015-04-01 18:29:43

标签: perl openshift mojolicious

有没有办法让perl Mojolicious :: Lite能够在没有跳过篮球的情况下使用OpenShift?这通常需要做的事情:Mojolicious_Lite_on_OpenShift

支持perl& OpenShift上的Mojolicious在过去几年中已经有了很大的改进,以至于它似乎是一个简单的点击和安装过程。但是开箱即用,我无法让Mojolicious找到任何嵌入式模板,并且使用外部模板,它只会找到' /'路线的模板。

我使用的是一个非常简单的Mojo脚本:

use Mojolicious::Lite;

get '/' => 'index';

get '/foo' => sub {
    my $self = shift;
    $self->render(template => 'foo')
};

app->start;

第一条路线' ... rhcloud.com/'工作,显示./templates/index.html.ep

然而' ... rhcloud.com/foo'失败,转出app-root / logs / perl.log:

[Wed Apr 01 14:02:06 2015] [错误] [client 127.xxx.xxx.xxx]文件不存在:/ var / lib / openshift / 551b352b4382ec9a2800000a / app-root / runtime / repo / foo

过去我能够使用Mojolicious::Lite on OpenShift让Mojo工作,但这似乎不再适用。

最近有人能够让这个工作吗?

复制此问题的简单方法:

use Mojolicious::Lite;

get '/' => sub {
    my $self = shift;
    $self->render(template => 'index')
};

app->start;

__DATA__

@@ index.html.ep
INDEX

您应该收到无法找到index.html.ep的错误。

请注意,此问题仅适用于OpenShift环境中的Mojolicious!

1 个答案:

答案 0 :(得分:0)

我认为您缺少将index.pl文件作为psgi应用程序运行的部分,尝试使用此问题的答案(Can openshift/rhcloud variables be used in an .htaccess file)来设置.htaccess文件,以便它将路由/ foo url到你的index.pl所以它可以控制路由