【问题标题】:Launching a grails-app through Intelli-J with root set to localhost:8080/ instead of localhost:8080/app, or modifying createLink?通过 Intelli-J 启动 grails-app 并将 root 设置为 localhost:8080/ 而不是 localhost:8080/app,或者修改 createLink?
【发布时间】:2011-02-14 06:45:53
【问题描述】:

有没有办法通过 Intelli-J 启动应用程序,从而使 localhost:8080/ 成为应用程序的根?我遇到的问题是在本地工作的 AJAX url 在生产中不起作用,createLink(action:"ajaxUpdate") 似乎创建了对 /app/ajaxUpdate 的引用,它在本地工作但在生产中不起作用。

有没有办法修复createLink 在这两个位置工作?我想也许我可以使用 UrlMappings 来使所有 ajax 调用变得漂亮,然后引用 /ajaxUpdate,但这不起作用,因为 grails 应用程序是如何部署在 Intelli-J 中的。

我该如何解决这个问题?

【问题讨论】:

    标签: grails groovy intellij-idea url-mapping


    【解决方案1】:

    关于您的问题,在 grails-app/conf/Config.groovy 中您可以指定服务器 URL,如下所示:

    environments {
        production {
    
            grails.serverURL = "http://localhost/"  // Specify the "root" of your link
            ....
        }
    
        development {
            grails.serverURL = "http://localhost:8080/${appName}"
            ...
        }
        ...
    }
    

    那么 createLink 方法应该没问题。据我所知,这是关于 Grails 配置的,与 IntelliJ 无关。

    编辑:似乎我错过了一些信息:要使 createLink 从“http://localhost/”开始,有必要在 Config.groovy 中添加另一行:

    grails.app.context = "/"
    

    【讨论】:

    • 我应该先检查一下。我敢打赌我什至为生产 v_v 配置了这个。
    • @Stefan:我之前也遇到过同样的问题。希望对您有所帮助
    • 这不起作用。 'createLink' 在需要生成 /main/whatever 时仍会生成 /app/main/whatever。
    • @Stefan:你是如何改变它的?你试过“grails clean”吗?
    • 是的,我有。我有一个 Url Mapping:“"/"(controller:"main")。即使我在开发/测试环境中指定 grails.serverUrl = “localhost:8080”,该应用程序仍然可以在:8080/app 上使用,而不是:8080。因此, 在开发中有效的网址在生产中无效。
    猜你喜欢
    • 2019-04-18
    • 2019-06-04
    • 2011-08-05
    • 1970-01-01
    • 2011-06-27
    • 2012-06-24
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多