Take a look at the discussion here and the JIRA here.
Thiago H. de Paula Figueiredo has created a RequestFilter to workaround this issue so that he can use wymeditor which loads dynamic relative assets in javascript. Source code here
* edit * The above comments refer to latest (unreleased) version 5.4 of tapestry.
For versions less than 5.4 I assume you can get the root classpath asset URL via:
${asset:classpath:/}
Or
@Inject
private AssetSource assetSource;
public String getRootPath() {
return assetSource.getClasspathAsset("/").toClientURL();
}