【问题标题】:Disabling lazy load in Play application在 Play 应用程序中禁用延迟加载
【发布时间】:2015-01-11 04:03:07
【问题描述】:

默认情况下,您的 Play 应用程序只有在您向其发出 http 请求后才会完全启动(编译、GlobalonStart 调用等)。

有没有办法禁用这种延迟加载,让 Play 应用程序编译代码并在应用程序进程运行后启动?

PS:我使用的是 Play 2.3。

更新:正如 Ryan 指出的那样,延迟加载只发生在开发中。模式。尽管如此,我仍然需要禁用它,尽管这仅与在 dev 中运行的应用程序相关。模式。

【问题讨论】:

  • 我认为没有简单的方法可以禁用此功能。播放服务器在第一个请求时以开发模式启动,以便在刷新页面时可以重新编译。你可能不得不像@biesior 建议的那样使用一些诡计。

标签: playframework playframework-2.3


【解决方案1】:

延迟加载仅适用于开发模式 (play run)。生产模式不偷懒。

https://www.playframework.com/documentation/2.3.x/Production

【讨论】:

  • 嗯,好的。我希望这可以简化我的应用程序某些部分的调试,所以,猜猜这个问题仍然是相关的 - 有没有办法在 dev.js 中禁用它。模式?
【解决方案2】:

正如 Ryan 解释的那样,它仅供开发人员使用。

提示:IntelliJ Idea 有一个 Play 支持,默认情况下它在开发模式下运行后会打开新的浏览器窗口,这会自动初始化编译。

很确定你可以用简单的 shell 脚本/批处理文件来做同样的事情。

【讨论】:

    【解决方案3】:

    您可以使用testProd 而不是run(在当前2.5 版本中)运行您的应用程序。这会以 prod 模式而不是 dev 模式启动您的应用程序。

    如果您从 IntelliJ 而不是 Play 控制台运行,则需要创建一个新的运行配置,选择 SBT 任务,然后在任务部分输入 testProd

    【讨论】:

      【解决方案4】:

      play start。这会在生产模式下启动您的应用,并在应用启动时加载 onStart

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-07-25
        • 1970-01-01
        • 2013-12-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-06-28
        • 1970-01-01
        相关资源
        最近更新 更多