grails - 与Grails插件不兼容?

标签 grails grails-plugin

我正在创建一个Grails应用程序,该应用程序使用RichUI插件和Atmosphere插件。但是,这些插件似乎有些不兼容。当我在.gsp页面的开头声明资源标签时,只有一个插件可以正常工作。如果我这样声明:

<head>
  <atmosphere:resources/>
  <resource:rating />
     ...

仅适用于RichUI插件(星级)。在另一方面,它仅适用于大气插件:
<head>
  <resource:rating />
  <atmosphere:resources/>
   ...

知道为什么会这样吗?难道我做错了什么?
非常感谢。

更新

这是在gsp页面中导入的资源:
<script type="text/javascript" src="/Ontourtest/plugins/atmosphere-0.4.1/js/jquery-1.4.2.js"></script>

<script type="text/javascript" src="/Ontourtest/plugins/atmosphere-0.4.1/js/jquery.atmosphere.js"></script>

<script type='text/javascript' src='/Ontourtest/plugins/richui-0.8/js/prototype/prototype.js'></script>
<script type='text/javascript' src='/Ontourtest/plugins/richui-0.8/js/rating/behavior.js'></script><script type='text/javascript' src='/Ontourtest/plugins/richui-0.8/js/rating/rating.js'></script><link rel='stylesheet' href='/Ontourtest/plugins/richui-0.8/css//rating.css'></link>

您看到任何潜在的不兼容性吗?

最佳答案

可能是方法名称冲突;两个插件都可以在默认 namespace 中声明同名函数。我已经使用YUI Namespacing在我的应用程序中解决了这个问题。

这也可能是插件依赖关系中的冲突,例如每个都导入同一库的不同版本。尝试查看gsp页面的生成的html,以查看插件资源标签正在导入的内容。

编辑:

我快速浏览了这些Javascript库,并且碰撞可能是JQuery(由Atmosphere使用)和Prototype(由RichUI使用)以不同的方式使用的。

根据JQuery reference,如下调用“noConflict()”应该可以解决问题。请记住,我还没有尝试过,也不知道组件.js文件现在是否可以在不做进一步修改的情况下工作:

<script type="text/javascript" src="other_lib.js"></script>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript">
  $.noConflict();
  // Code that uses other library's $ can follow here.
</script>

关于grails - 与Grails插件不兼容?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6814983/

相关文章:

grails - Grails中基于角色的域类字段访问

grails - Grails-部署WAR文件后如何加载.properties文件

grails - 执行脚本大战时出错

grails - Grails:使用两个数据库(一个使用域类创建,另一个是现有的数据库)

grails - grails 中独特的随机 token 生成

css - 如何在Grails渲染插件模板中使用bootstrap css

grails - Grails 3模式导出错误的用户名或密码

grails - 在 liferay 6 上部署 grails portlet 时出错

tomcat - 如何更改 Grails 2 的 Tomcat 7 插件源

grails - 从grails test-app中排除软件包?