尝试学习资源插件
根据我的理解,它有助于定义“资源”,如css和javascript文件,并在需要时自动将它们拉入你的gsp。我了解如何创建可以使用标签等加载的模块。
所以我在Config.groovy中创建了一个名为'images'的模块,如下所示:
grails.resources.modules = {
images {
resource url:'/images/view.jpg', attrs:[width: 1280, height:720 , alt: 'my view']
resource url:'/images/breakfast.jpg', attrs:[width: 1280, height:720, alt: 'breakfast']
}
}
资源包含在head部分的.gsp页面中,如下所示:
<head>
<r:require modules="jquery-ui, blueprint"/>
</head>
我知道资源已成功添加到head部分,因为当我检查页面源时,我在那里看到它们:
<link href="/ResourceTest/static/Aa7jV0N2qZjOz7TLZ9cl5cREIh2y5jJYV0ytn4nQg9r.jpg" rel="shortcut icon" width="1280" height="720" alt="my view" />
<link href="/ResourceTest/static/IpQBSjrYeLDdSUBGbP3jhf6Kkhvu1zV3XRtwWfKOIMn.jpg" rel="shortcut icon" width="1280" height="720" alt="breakfast" />
我的问题是:如何使用图像资源?我的意思是我知道如果它是javascript,资源的导入使您可以使用html代码中的函数,但是对于图像,该网站说“一旦你完成了这个,用它来引用它们会自动设置宽度,高度和其他属性。“
如何?我尝试了以下内容:
<r:img module="images">
<r:img alt="breakfast">
和少数其他没有成功的人
工作原理是什么:
<r:img uri="/images/breakfast.jpg">
但无论你是否使用r:require标签添加模块,这都有效。那么,那么为图像使用这个插件的目的是什么呢?我将如何使用它?
答案 0 :(得分:0)
<r:img>
代码可以正常使用我们的<r:require>
; it even works with undeclared image resources。
require标记的要点是防止资源重复。因此,例如,假设您有多个依赖于jQuery的javascript资源,并且它们都是必需的。添加另一层复杂功能:假设您实际上是通过sitemesh将不同的gsp模板组合在一起,并且每个模板都有自己的资源依赖关系。如果您只是将普通HTML代码引用到每个gsp布局的头部中的那些资源,您可能会在页眉中获得它们的多个实例,这可能会有问题。使用资源插件可确保只获得所需资源的一个实例。
请参阅http://grails-plugins.github.io/grails-resources/ref/Tags/require.html和http://grails-plugins.github.io/grails-resources/ref/Tags/layoutResources.html。
但是,对于图像,这并不是必需的。如果您在页面上有多个图像,可能是因为您需要它,或者因为您正在应用冗余布局并需要重构一点。因此,对于通过<r:img>
调用的图像,require标签并没有真正起作用,这是正确的。这仅仅是因为图像是一种不同的资源,所以它们的处理方式不同。不要出汗。 :)