【问题标题】:How to enable Grails 3.x auto-reload?如何启用 Grails 3.x 自动重新加载?
【发布时间】:2015-06-24 07:22:02
【问题描述】:

我无法在新创建的控制器上进行自动重新加载。我的应用程序正确启动,但每当我执行grails create-controller <controller-name> 时,就会创建控制器并且我看到新控制器已编译。

当我尝试访问新生成的控制器时,我总是得到一个“找不到页面 (404)”。重新启动 Grails 应用程序后,新创建的控制器可以正常工作。

我在 OSX Yosimite 和 Java 1.8.0_31-b13 上使用 Grails 3.0.1。有关如何解决此问题的任何线索?

我正在使用以下组合启动应用程序:

grails run-app
grails -reloading run-app
grails run-app -reloading

这些都不能重新加载新创建的控制器

【问题讨论】:

  • 请粘贴您用于运行应用程序的完整命令。
  • 用我尝试过的完整命令更新了问题。
  • 第二个选项应该可以。尝试做grails clean-all 并使用第二个选项,然后再试一次。
  • 我尝试了你的建议。 grails clean > grails -reloading run-app > grails create controller acme > 检查我是否可以访问 acme 控制器。仍然收到 404 错误。我在 grails 控制台中看到生成并编译了 acme 控制器。
  • 那么,应该是bug。请提出一个JIRA

标签: grails reload grails-3.0


【解决方案1】:

Grails 在 2.4.4 版本中引入了我认为的错误,并且至少在 3.0.4 中仍然存在,如果文件(在本例中为控制器)路径中有空间,则自动重新加载不起作用.

更多详情请见this post

【讨论】:

    【解决方案2】:

    适用于 grails 2.x 的东西也必须适用于 3.x。

    尝试以下命令,将此设置为 false 必须允许重新加载。

    grails -Ddisable.auto.recompile=false run-app
    

    【讨论】:

    • 感谢您的回复,但这并不能解决问题。
    • 你的问题标题误导了我。所以你的控制器正在编译。但是找不到页面 404 是因为它试图渲染的视图不存在?您新创建的控制器包含哪些详细信息?是脚手架吗?请找到对应的视图或者放一个渲染“hello world!”来测试
    • 如果视图丢失,您将收到 HTTP 500 错误。给出无法解析视图的消息。因此,我在控制台中看到新控制器已创建、编译但在我重新启动应用程序之前无法访问。
    • 我正在开发 Grails 2.4.4。试过这个不起作用。它和以前做的一样:编译控制器,但在重新启动之前更改不可用。
    • 尝试 grails -reloading run-app for grails 2.4。另外,请参阅链接 grails.org/doc/2.3.x/guide/…
    猜你喜欢
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    • 1970-01-01
    • 2013-09-23
    • 1970-01-01
    • 2012-09-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多