- Assets should be stored along with the page you are creating.
- General resources (CSS, JS, and images should be put in (you could try other spots, but I had trouble finding them with Jetty)
- src/main/webapp/css
- src/main/webapp/js
- src/main/webapp/images
- In case of CSS/JS/images for components, have a look into the way the T5 Grid or Palette component is constructed, since they have their own js, css and images.
[Thanks go to Daniel Jue, who answered my question on June 7, 2007]
For example, if you have this file:
src/main/webapp/css/MyStyle.css
You can access it in your page or component Java class like this:
@Inject @Path("context:css/MyStyle.css") private Asset thestyle; public Asset getTheStyle() { return thestyle; }
And then in your page or component template:
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_0_0.xsd"> <head> <title>My Title</title> <link rel="stylesheet" type="text/css" href="${thestyle}"/> </head> ... </html>
Similarly, having src/main/webapp/images/MyLogo.gif Page or Component Class:
@Inject @Path("context:images/MyLogo.gif") private Asset thelogo; public Asset getTheLogo() { return theLogo; }
Page or Component Template (the html):
<img src="${thelogo}" />