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" )
<link rel="stylesheet" type="text/css" href="$resource(dir: 'assets/css', file: "datepicker.css", contextPath :"plugins/ui-plugin-0.1", absolute:"true" )"/>
【讨论】:
以上是关于Grails 资源标签生成错误链接的主要内容,如果未能解决你的问题,请参考以下文章