grails应用程序根上下文

ibu*_*uck 7 grails groovy

我有一个带有"/ testapp"上下文的测试grails应用程序设置.当我在我的gsp中添加一个链接时,引用/它不会转到我的grails.app.context的根目录,而是转到我的grails.serverURL属性的根目录.

例如,给出与href"/css/main.css"的链接

我希望这个链接实际上看起来是localhost:8080/testapp/css/main.css而不是localhost:8080/css/main.css

有没有办法可以从grails.app.context和grails.serverURL开始引用/开始?

Aar*_*ers 21

在页面上使用请求contextPath值

${request.contextPath}
Run Code Online (Sandbox Code Playgroud)

然后在必要时添加其他主机信息以构建完整的URL


hvg*_*des 6

问题是如何将链接添加到gsps中?

我们做的事情就像

<link rel="stylesheet" href="${resource(dir: 'css', file: 'stylesheet1.css')}"/>
Run Code Online (Sandbox Code Playgroud)

<g:javascript library="prototype"/>
Run Code Online (Sandbox Code Playgroud)

通过使用g:javascript和资源标签和方法,您告诉grails为您设置路径...

我怀疑你只是把标准标签放进......

http://grails.org/doc/latest/

并且,在左侧导航栏中的标签下,查找资源和/或javascript以获得一个想法(很难直接链接到文档...... :()


use*_*180 6

我有一个与OP类似的问题 - 如何让grails形成从上下文根开始而不是服务器根的链接?

您可以使用g:link和g:createLink标记的"uri"属性执行此操作.例如:

<g:link uri="/login">login</g:link>
Run Code Online (Sandbox Code Playgroud)

如果适用,将在任何上下文前缀,并产生以下内容

<a href="/login">login</a>  if your app is at the http://server/ 
<a href="/testapp/login">login</a> if your app is at http://server/testapp/
Run Code Online (Sandbox Code Playgroud)

不确定为什么它在参考文档中是一个未记录的属性,但我在Javadocs中找到它- ApplicationTagLib