grails资源标记在链接中创建重复的应用程序上下文

时间:2015-06-25 15:50:51

标签: tomcat grails

有时,我们的代码需要为资源创建链接。发生这种情况时,它看起来如下:

<link rel="stylesheet" type="text/css" 
href="${resource(dir: '/css/', file: 'UXdashboard-pdf.css') }"
media="all"/>

但是,这会创建一个类似于以下内容的链接(请注意重复的应用程序上下文)

<link href="/ici/ici/css/UXdashboard-pdf.css" media="all"

我们没有定义grails.serverUrl或grails.app.context。我们有app.name =&#39; ici&#39;在application.properties中设置。

我们使用tomcat设置部署autodeploy =&#34; true&#34;这应该创建一个应用程序上下文&#39; ici&#39;基于war文件名。

我不确定第二个app-context来自哪里。我应该不在application.properties中设置app.name吗?我可以指定&#39; base&#39;参数,但我宁愿在我尝试解决之前准确理解重复上下文的来源。

我们使用apache作为我们的前端文档服务器,并且apache似乎能够处理这些链接,因为我看到为它们返回了200个代码。但是我们有一个执行pdf生成的插件,我怀疑它没有找到css文件,因为链接。

谢谢!

1 个答案:

答案 0 :(得分:0)

我实际上回答了我自己的问题,以防其他人遇到这种情况。事实证明,双/<appcontext>/<appcontext>是由grails.resources.uri.prefix =&#34; ici&#34;引起的。

我们还使用Resources插件,它与g:resource标签集成在一起。资源插件在形成其URL时自动添加/ static /目录。我们不使用静态子目录,grails.resources.uri.prefix允许覆盖它。只是将它设置为空字符串不起作用,但apache可以处理<appcontext>/<appcontext>。所以我在pdf生成案例中需要做的就是重写这一个链接。