使用Dancer perl的多个应用程序目录
发布时间:2020-12-16 06:28:58 所属栏目:大数据 来源:网络整理
导读:有没有办法让一个应用程序在舞者,但有多个appdirs. 或者我可以这样做: 我的项目是dir’foo’.让我们说我有一个dir’bar'(不在’foo’里面),它有一个名为’public’的目录.我的应用程序’foo’使用这个公众作为自己的公众,如果它搜索让我们说’/css/style.cs
|
有没有办法让一个应用程序在舞者,但有多个appdirs.
或者我可以这样做: 我的项目是dir’foo’.让我们说我有一个dir’bar'(不在’foo’里面),它有一个名为’public’的目录.我的应用程序’foo’使用这个公众作为自己的公众,如果它搜索让我们说’/css/style.css’并且它不在’/ bar / public /’它应该搜索’/ foo /上市/’.我怎样才能做到这一点? 解决方法
如果编写一个呈现静态(并替换某些功能)的插件的方法之一.您可以使用
Dancer::Plugin::Thumbnail作为示例.
我看到的另一种方法是在Dancer::Renderer修补get_file_response(),这实际上并不是一个好主意. 以下代码在@dirs数组的每个目录中查找静态文件.它很脏,很丑,不安全. #!/usr/bin/env perl
use Dancer;
use Dancer::Renderer;
use MyWeb::App;
my $get_file_response_original = &;Dancer::Renderer::get_file_response;
my @dirs = ('foo');
*Dancer::Renderer::get_file_response = sub {
my $app = Dancer::App->current;
my $result;
# Try to find static in default dir
if ($result = $get_file_response_original->(@_)) {
return $result;
}
# Save current settings
my $path_backup = $app->setting('public');
# Go through additional dirs
foreach my $dir (@dirs) {
$app->setting(public => $dir);
if ($result = $get_file_response_original->(@_)) {
last;
}
}
# Restore public
$app->setting('public' => $path_backup);
return $result
};
dance;
第三种方法是让nginx通过为您的应用程序编写适当的nginx配置来为您完成这项工作. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
