问题标签 [mojolicious-lite]

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 回答
370 浏览

perl - 在子目录下的 Apache 上运行 Mojolicious Lite 应用程序时的 Mojolicious 基本 URL

我正在尝试在子目录中的 Apache(共享主机)上运行一个小型 Mojolicious Lite 应用程序:http://www.example.com/mymojoapp/. 我主要尝试遵循本指南

是服务器上的mymojoapp一个实际目录,app结构如下:

.htaccess内容:

app.pl内容(perlmlperl+ 用户安装模块的路径,包括 Mojolicious):

在两者中index-layout.html.epother-page-layout.html.ep我都将 css(和图像)称为<link rel="stylesheet" href="<%= url_for %>/css/styles.css">. 当我访问基本 URL ( http://www.example.com/mymojoapp/) 时,页面以正确的样式显示,因为它url_for为我 /mymojoapp/提供了 stylesheet = 的路径/mymojoapp/css/normalize.css。但是当我访问时http://www.example.com/mymojoapp/u/someuser,CSS路径是/mymojoapp/u/someuser/css/normalize.css并且样式没有应用。

我觉得我错过了一些重写规则,或者它可能可以在before_dispatch钩子中修复,但到目前为止我无法弄清楚。

如何确保在我的应用中生成的所有页面都获得正确的基本 URL?

0 投票
0 回答
178 浏览

perl - 在 IIS 上使用 Mojolicious 的会话 cookie

初始职位

我已经在 Mojolicious 论坛上发布了我的问题,但仍在寻找解决方案。

由于各种原因,我试图让我编写的一些 Mojolicious 应用程序在 IIS 上运行。我有一个 7.5 (2k8r2) 和 8.5 (2k12r2) 服务器来测试。

IIS 设置非常基础。我在默认网站下创建了一个新应用程序,将其指向代码,添加了 Perl 处理程序映射,并添加了一个默认文档。该站点的路径是http://server.example.com/sessiontest/

设置并运行站点后,一切都按预期工作,只是会话不工作。我写了一个测试应用程序来测试。在脚本开始时,我正在设置会话:

设置会话变量:

并使用助手测试它是否存在:

当我在任一服务器上使用 Morbo 运行代码时,它运行良好并且会话正常工作。但是在 IIS 下我什么也得不到。

我收到的建议之一是查看 cookie 域和 cookie 路径。作为测试,我尝试在服务器的主机文件和服务器 IP 的客户端中设置一个测试域名test.example.com。我他们补充说:

我假设cookie_path应该是'/',我也尝试过但没有运气。

任何帮助,将不胜感激!

IIS 配置

这是一个新安装的运行 IIS 8.5 的 W2k12R2 机器。我安装了 ActivePerl 5.24。配置是我能得到的基本配置。这是我配置 IIS 的步骤。

  • 安装带有 CGI 支持的 IIS
  • 将测试应用复制到 C:\Code\sessiontest\
  • 从默认网站 -> 添加应用程序
  • 别名:sessiontest,物理路径:C:\Code\sessiontest\
  • 选择会话测试应用程序
  • 将 *.pl 的处理程序映射添加到 C:\Perl64\bin\perl.exe "%s" %s
  • 为 app.pl 添加默认文档

卷曲的输出

从 curl 到 IIS 服务器的结果。

与从 Morbo 运行的结果相比

我将模式设置为生产,现在我在 IIS 上更接近了。

0 投票
1 回答
252 浏览

perl - 为什么 Mojolicious 应用程序会抛出 500

作为 Mojolicious 的新手,我无法让我的应用程序正常工作。我在远程服务器上运行所有东西,但我能找到的所有教程都只想展示 localhost 的部署方式。正如标题所示,我收到 500 个内部服务器错误,而不是正在加载/运行的应用程序,并且不知道为什么。有人可以解释一下对于那些不使用本地机器来运行他们的应用程序的人是如何做到的吗?

这是生成的演示应用程序,一切都很漂亮:

一切正常,hypnotoad 命令返回:

需要做什么才能让这个应用程序通过网站 url 而不是 localhost 加载?

抱歉,如果这似乎是一个愚蠢的问题,但似乎没有任何明显的教程或关于从远程服务器运行 mojo 应用程序的太多讨论,所以任何帮助都是 appriciated,因为我确信其他新手以前也遇到过类似的问题,而且更多来。

0 投票
0 回答
206 浏览

perl - 结合 RabbitMQ 消费者和 Mojolicious websocket 服务器

我有一个受此示例启发的 Mojolicious 服务器,以及受此示例启发的 RabbitMQ 消费者。我的计划是将它们结合起来,以便网络客户端可以访问 Mojolicious 服务器并订阅某种更新。mojo 服务器会时不时地检查一个rabbitmq 队列,看是否有一些更新,如果有,它会将数据发送到连接的websocket 客户端。

我正在努力看看如何做到这一点。我是把rabbitmq 的东西放在mojo 服务器的东西里,还是反过来。如何防止rabbitmq消耗阻塞传入的websocket连接。我想我必须在消耗时使用超时,但是我可能不得不在循环中运行它,这可能会阻塞 websocket。还是我误解了什么?也许 Mojolicious 不是使用正确的库?

我在想服务器每 10 秒检查一次 rabbitmq 队列,但同时接受 websocket 连接。

有人对如何解决这个问题有一些想法吗?一些伪代码或任何东西将不胜感激。

0 投票
0 回答
207 浏览

perl - 在 Mojolicious 会话上设置“安全”标志

如何在 Mojolicious 会话 cookie 上设置安全标志?我希望能够在不在 https 上运行的测试环境中本地访问它。

我已阅读Sessions文档和app->session one,并尝试过(在Mojolicious::Lite应用程序中)

但没有结果。

我究竟做错了什么?

0 投票
1 回答
988 浏览

login - Mojolicious 基本登录

我正在寻找 Mojolicious 中的身份验证。我有 2 页 momcorp1 和 momcorp2,但我无法在多个页面之间通过,有人知道如何做到这一点。

我正在阅读“under”,但我不知道如何做到这一点。

另一种形式是使用 -Mojolicious::Plugin::Authentication - 但更难。

这是代码,当 1 单击指向 momcorp 2 的链接时,显示错误。

0 投票
2 回答
342 浏览

perl - 如何退出在 Morbo 或 Hypnotoad 服务器下运行的程序

在 Morbo(和 Hypnotoad)服务器下运行的程序中,调用 会exit()被静默忽略,并有效地作为回调的返回。END 块通常会触发,但程序本身永远不会退出。


0 投票
1 回答
128 浏览

perl - Test::Mojo + proof 导致重复记录

我有以下使用 Test::Mojo 的测试脚本。当我使用 perl 从命令行运行它时,它会正确输出。但是,当我通过“prove -v”运行它时,Mojo 日志记录被复制,其中一个没有通过“on message”管道传输。

直接运行时的输出:

并且通过证明运行时的输出:

以下是我的版本信息:

我发现避免这个问题的一种方法是在脚本顶部设置 MOJO_LOG_LEVEL 环境变量。

关于如何让 Prove 和 Test::Mojo 在日志记录方面发挥出色的任何其他建议?

0 投票
1 回答
657 浏览

perl - Mojolicious 参数验证

我有以下代码:

并想验证 http requeste 上的 y 参数,我使用以下方式连接到上述网页:http://myserver:3000?x=2&y=1

它从 1 打印 => Hello。即使有 $v->required('y')->like(q/[AZ]/);

我的问题可能是什么?

0 投票
1 回答
258 浏览

perl - 如何转储所有 Mojolicious 路线?

完整的 Mojolicious 应用程序具有routes将转储应用程序路由的命令:

如何从测试Lite应用程序脚本中做同样的事情?