问题标签 [plack]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
602 浏览

perl - 如何将静态 CGI 风格的 perl 脚本(xxx.pl)转换为动态 PSGI 应用程序?

CGI 风格的 perl 脚本很难用这种风格进行测试:

(注意:代码在 ruby​​ 中,使用Rack::Test)。

但是,如果我可以将静态文件转换为 PSGI 应用程序(代码引用,接受$env作为参数,返回[$status, $header, $body]),事情就会变得简单,Plack::Test剩下的就交给我了。

我正在阅读 PSGI 规范,通常我可以看到这条路线。但我还是想知道这有没有存在之轮?

另外,我认为Plack::Test它的界面不如Rack::Test任何替代品漂亮?

0 投票
1 回答
675 浏览

perl - 如何为 PSGI / Plack Web 应用程序(在 Perl 中)提供静态文件(图像等)?

如何为基于 PSGI / Plack 的 Web 应用程序提供静态文件(图像、javascript、样式表)?

答案可能取决于使用的 Web 服务器,无论是 CGI、FastCGI、mod_psgi 还是像 Starman 这样的纯 Perl。我听说使用 Plack::Middleware::Static 或 Plack::App::File(连同 Plack::App::URLMap)仅用于开发......

0 投票
1 回答
204 浏览

perl - 提供静态文件句柄时出现 Twiggy 400 错误请求

我有一个难以在较小的测试用例中重现的问题,但这里是基本描述:

  1. 我以 root 身份运行 Perl 的 Twiggy Web 服务器,绑定到端口 81。

  2. 我使用 Plack::App::File->(root => "/my/directory") 作为默认 Web 应用程序来提供来自 /my/directory/... 的静态内容

  3. 对于小文件,这可以正常工作,但对于较大的文件(例如,超过 30kB 左右),输出会被 400 Bad Request 错误相当可靠地截断。例如,我请求 /my.css,它服务于 /my/directory/my.css 的开头,但以:

    /li>

我希望 Twiggy 提供整个文件,而不是像上面那样截断它。

我尝试通过 Twiggy/Server.pm 查看服务文件句柄会发生什么,但我迷路了。:(

0 投票
2 回答
854 浏览

perl - 使用 Plack 和 Middlewares 时将默认 perl 的 IO 切换为 utf-8 是否正确?

两个出发点:

使用是否正确

在 PSGI 应用程序和/或我的模块中?

uni::perl将 Perl 的默认 IO 更改为 UTF-8,因此:

这样做会破坏 Plack 或其中间件中的某些内容吗?或者是为 Plack 编写应用程序的唯一正确方法,在打开时显式编码/解码,所以没有openpragma

0 投票
1 回答
462 浏览

perl - 将 Modperl 配置转换为 Plack - 按文件扩展名运行不同的处理程序

我正在尝试将我当前的 Apache/Modperl 站点转移到 Starman,并且需要使用针对不同文件扩展名的不同处理程序构建 app.psgi。类似于 Apache 中的东西:

我现在有:

但是如何使用构建器?

需要的“规则”:

  • 如果请求没有任何扩展名,或者请求以 '/' 结尾
    • 应该处理$Mapp
  • 如果请求以某些扩展名结束,则
    • .m.mh应由$Mapp
    • .p.ph应由$Papp
    • 所有其他带有扩展名的文件(如 .css .js .pdf .jpg ...)都应作为静态文件处理。

当然,将每个静态文件放到某个树中会容易得多,但是给出了当前的应用程序现在我只想将它移动到 Startman,重构 - 稍后。

0 投票
4 回答
7800 浏览

nginx - nginx/starman/dancer web 栈的解释

我从事网络编程已经有一段时间了,对 LAMP 堆栈非常熟悉。我决定尝试使用 nginx/starman/dancer 堆栈,但我对如何从高层次理解所有部分如何相互关联感到有些困惑。设置堆栈似乎不像设置 LAMP 堆栈那么简单,但这可能是因为我不太了解这些部分之间的关​​系。

我了解 nginx 所扮演的角色——一个轻量级的网络服务器/代理——但我对 starman 与 pgsi、plack 和 dancer 的关系感到困惑。

我希望对这些部分如何相互关联以及为什么每个部分都是必要的(或不必要的)进行堆栈设置进行高级分解。谢谢!

0 投票
1 回答
281 浏览

perl - Plack::Builder 得到职位

有没有办法在特定方法(GET 或 POST)的构建器部分中指定,但不能同时指定两者?我的构建器部分示例。

它处理 get 和 post 请求,如何禁用 GET 请求的处理?

谢谢。

0 投票
1 回答
474 浏览

perl - 使用 PSGI,是否可以更改上传文件的命名方式?

我有一个小型 PSGI 应用程序,它从表单上传并将其传递给另一个脚本进行处理:

该文件已成功上传,类似于/tmp/Fw8n6j0ICn.txt. 问题是,处理依赖于文件在上传时被命名。

是否可以更改文件的上传方式以便它们转到/tmp/Fw8n6j0ICn/original_name.txt

0 投票
1 回答
918 浏览

perl - Apache 服务器上使用 Plack::Runner 的 Perl Dancer

我有一个 Perl Dancer 网络应用程序,我想在 apache 服务器上运行(在 centos 6 上)。我在 webapp 的 rootdir 中放置了一个指向使用 Pluck::Runner 模块的 public/dispatch.cgi 脚本的符号链接 (index.html)。

问题是在加载页面时,它找不到需要的文件(例如 sqlite 文件),实际上路由搞砸了,因为它在 $appname/index.pl/blabla... 寻找路由而不是$应用程序名/blabla...

我认为这里需要某种 apache 指令或规则,但我做得不够好。

我希望有人可以帮助我解决这个问题。

先谢谢了。罗伊。

0 投票
2 回答
992 浏览

perl - Perl - Facebook 图形 API

以前很容易区分桌面应用程序和 Web 应用程序,但今天在阅读文档时我注意到这种差异不太明显。

我正在使用 Facebook::Graph 模块创建桌面应用程序,但仍然无法超越配置阶段。我被困在身份验证阶段:

http://metacpan.org/pod/Facebook::Graph

它一直告诉我“需要$ env”。阅读文档后,我意识到 Plack 只关注 Web 应用程序。

http://metacpan.org/pod/Plack::Request

你能证实这一点吗?如果没有,我该如何通过这一步?

使用 Mechanize 获取 access_token 然后按照文档中的描述发出 GET 请求不会有问题,但我不想让我的存在复杂化,所以如果有其他方法......