Grails 资源标签生成错误链接

Posted

技术标签:

【中文标题】Grails 资源标签生成错误链接【英文标题】:Grails resource tag generating wrong link 【发布时间】:2015-08-17 14:18:19 【问题描述】:

我正在开发一个项目,其中不同的模块被划分为不同的自定义插件。比如——

会计插件 UiPlugin 等等……

所以就像现在我在 UiPlugin 中拥有所有与 UI 相关的东西,并且我正在开发会计插件,并且我只有在这个插件中拥有所有域的控制器、服务和视图。

我正在使用Resource tag 从 UI 插件中获取所有 CSS 和 JS,并且必须在会计插件中使用它,例如 -

<link rel="stylesheet" type="text/css" href="$resource(dir: 'assets/css', file: "datepicker.css")"/>

生成http://localhost:8080/PROJECT_NAME/plugins/accountancy-plugin-0.1/assets/css/datepicker.css

但文件位于-http://localhost:8080/PROJECT_NAME/plugins/ui-plugin-0.1/assets/css/datepicker.css

所以问题在于它正在查看自己的资源。如何让这个资源标签在单独的(UI)插件中查找资源?

请注意:业务逻辑已与 UI 分离,因此我们有多个插件和一个单独的 UI 插件,所有插件都使用它来获取 UI 和主题。所以它们不能在同一个插件中。

【问题讨论】:

你可以尝试使用资源标签中提供的“contextPath”选项,以便使用相对路径 谢谢 Anant 是的上下文路径以及 absolute:"true" 工作。 【参考方案1】:

使用上下文路径提供插件路径,同时使用absolute:"true",使URL从项目名称开始。

例子-

$resource(dir: 'assets/css', file: "datepicker.css", contextPath :"plugins/ui-plugin-0.1", absolute:"true" )

&lt;link rel="stylesheet" type="text/css" href="$resource(dir: 'assets/css', file: "datepicker.css", contextPath :"plugins/ui-plugin-0.1", absolute:"true" )"/&gt;

【讨论】:

以上是关于Grails 资源标签生成错误链接的主要内容,如果未能解决你的问题,请参考以下文章

Grails:从另一个标签库中调用一个标签库

Grails 资源插件入门

使用 grails 2.2.0 和资源插件找不到自定义 jquery css 图像

Grails:属性空错误

Grails 依赖项生成失败(ivy,Windows 7)

Grails 3.0 公用文件夹