【问题标题】:Perl catalyst application modificationPerl 催化剂应用修改
【发布时间】:2011-03-25 18:08:37
【问题描述】:

所以我试图修改另一个程序员编写的应用程序。该程序是用 Perl 编写的,并且显然使用了我没有任何经验的 Catalyst 框架。

代码有据可查,我的修改看起来很简单,但是当我尝试更改某些内容时(在特定的控制器中),同样没有效果。我错过了一步吗?我打开文件编辑它,保存它,然后尝试在我的浏览器中加载网络应用程序。我什至删除了其中一个控制器的全部内容,看看它是否会破坏应用程序,但它没有。

请帮忙。

谢谢,

【问题讨论】:

  • 您使用的是什么网络服务器?你重启了吗?
  • 使用apache...是否需要重启?
  • 如果它在 mod_perl 下运行,那么它可能会这样做,mod_perl 缓存已编译的 perl 源并且不检查更改(这避免了调用 stat(2)浪费时间> 一遍又一遍)。

标签: perl catalyst


【解决方案1】:

如果应用程序以合理的方式设置(在模板中使用uri_for(_action),而不是专门依赖服务器/env/etc),您应该使用开发服务器进行开发。有一些做法会使这变得困难:不修改就不可能。这就是你应该做的所有事情——

cd {APPLICATION DIRECTORY}
# Read about it-
perldoc script/*_server.pl
# Run it-
script/*_server.pl -r -d

除非设置有问题,否则http://localhost:3000/ 将与您的应用一起运行。

或者,可能是一个好主意,在您的 apache 设置中以网络用户身份运行应用程序。如果该用户有文件或访问权限,这可能很重要(例如,如果会话或缓存文件被使用并仅限于该用户)–

sudo -u www script/*_server.pl -r -d

这些标志打开调试输出和重启器,这样每次你更改应用程序中的文件时,服务器都会自动重启(如果它编译的话)。

Catalyst 是一种开发的乐趣,开发服务器是其中的一部分。

【讨论】:

  • 是的,听起来你没有使用开发服务器。这是一条通往精神错乱的道路。请花几个小时学习 Catalyst::Manual::Tutorial。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-20
  • 2014-07-23
  • 1970-01-01
  • 2020-08-03
  • 2016-09-08
  • 2020-01-05
  • 1970-01-01
相关资源
最近更新 更多