如何启用Grails 3.x自动重新加载?

9

我无法让自动生成的控制器实现自动重新加载。我的应用程序启动正确,但是每当我执行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

这些方法都没有起作用,重新加载新创建的控制器。


请粘贴您正在使用的运行应用程序的完整命令。 - Shashank Agrawal
更新了问题并附上了我尝试过的完整命令。 - Marco
第二个选项应该可以。尝试执行 grails clean-all,然后使用第二个选项再试一次。 - Shashank Agrawal
我尝试了你的建议。grails clean > grails -reloading run-app > grails create controller acme > 检查我是否可以访问acme控制器。仍然收到404错误。我在grails控制台中看到acme控制器已生成和编译。 - Marco
那么,这应该是一个错误。请提出一个JIRA。 - Shashank Agrawal
仍然在3.2.9版本中无法正常工作。 - A.W.
2个回答

5

Grails在2.4.4版本中引入了一个我认为的错误,这个错误至少在3.0.4版本中仍然存在。如果文件(在这种情况下是控制器)路径中有空格,则自动重新加载将无法正常工作。

更多细节请参见此文章


0

对于Grails 2.x有效的方法也同样适用于3.x。

尝试下面的命令,将其设置为false可以允许重新加载。

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

谢谢您的回复,但这并没有解决问题。 - Marco
你的问题标题误导了我。所以你的控制器正在被编译。但是页面找不到404是由于它试图渲染的视图不存在吗?你新创建的控制器包含哪些细节?它是否是脚手架?请找出相应的视图或者放置一个渲染“hello world!”来测试。 - Vinay Prajapati
如果视图缺失,您将收到HTTP 500错误。提示无法解析该视图。因此,总结一下,在控制台中我看到新的控制器已创建、编译但在重新启动应用程序之前无法访问。 - Marco
我正在使用Grails 2.4.4进行开发。尝试了这个方法但是没有效果。它和之前一样:编译控制器,但更改在重启之前不可用。 - Pablo Pazos
尝试使用grails -reloading run-app来运行Grails 2.4。另外,请参阅链接http://grails.org/doc/2.3.x/guide/single.html#upgradingFromPreviousVersionsOfGrails。 - Vinay Prajapati

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接