Html web应用中layout.tml的图像

Html web应用中layout.tml的图像,html,layout,tapestry,Html,Layout,Tapestry,我想设计一个标题中有图像的布局。我试图在layout.tml中加入一个带有html组件“img”的分区,但atribute“src”取决于您所在的页面。我怎样才能解决这个问题 您可以将标题设置为空白,并使用内部css更改标题的背景 例如,创建标题块 <div class="headerBG"></div> 然后在每一页中包括 <styles> .headerBG { background-image: page1Header.png; } <

我想设计一个标题中有图像的布局。我试图在layout.tml中加入一个带有html组件“img”的分区,但atribute“src”取决于您所在的页面。我怎样才能解决这个问题

您可以将标题设置为空白,并使用内部css更改标题的背景

例如,创建标题块

<div class="headerBG"></div>

然后在每一页中包括

<styles> 
.headerBG {
   background-image: page1Header.png;
}
</styles>

海德堡先生{
背景图像:page1Header.png;
}
在第2页

<styles> 
.headerBG {
   background-image: page2Header.png;
}
</styles>

海德堡先生{
背景图像:page2Header.png;
}
等等


另一种方法是使用javascript

<script>
  currPage = location.pathname.substring(1);
  if (currPage == index.html) {
     document.getElementByID("imageid").src="image1.png";
  }
</script>

currPage=location.pathname.substring(1);
if(currPage==index.html){
document.getElementByID(“imageid”).src=“image1.png”;
}

使用CSS是一个很好的选择;另一个是让Tapestry为您生成正确的图像URL:

<img src="context:images/image.png" alt="Logo"/>


在这种情况下,
img
不是一个组件,而是一个动态元素;
src
属性绑定到
context:images/image.png1
,它解析为图像的正确Tapestry URL;事实上,URL将比您预期的长,因为它将包括(在Tapestry 5.4中)基于内容的哈希代码,处理将包括电子标签支持和远未来过期标题。

感谢您的回答,但是,什么文件夹是“context:”?您应该花一些时间阅读Tapestry文档<代码>上下文:是一个绑定前缀,它标识Tapestry应该如何动态解释字符串的其余部分(
images/image.png
)。
上下文:
绑定前缀表示表达式是文件的web应用程序上下文(通常是开发工作区中的
src/main/webapp
下)下的路径;Tapestry将为此文件构建URL,但正如我所指出的,它将具有许多新功能。即使您遵循基于CSS的示例并使用Tapestry 5.4,您也会看到Tapestry已使用新URL重新编写了CSS文件。