Grails Resources插件,模块和<r:img>来渲染图像?</r:img>

时间:2012-01-25 11:45:27

标签: image grails plugins module

尝试学习资源插件

根据我的理解,它有助于定义“资源”,如css和javascript文件,并在需要时自动将它们拉入你的gsp。我了解如何创建可以使用标签等加载的模块。

我不理解的部分是:http://grails-plugins.github.com/grails-resources/guide/4.%20Using%20resources.html#4.2%20Linking%20to%20images

所以我在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标签添加模块,这都有效。那么,那么为图像使用这个插件的目的是什么呢?我将如何使用它?

1 个答案:

答案 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.htmlhttp://grails-plugins.github.io/grails-resources/ref/Tags/layoutResources.html

但是,对于图像,这并不是必需的。如果您在页面上有多个图像,可能是因为您需要它,或者因为您正在应用冗余布局并需要重构一点。因此,对于通过<r:img>调用的图像,require标签并没有真正起作用,这是正确的。这仅仅是因为图像是一种不同的资源,所以它们的处理方式不同。不要出汗。 :)