I am not an expert in this area, but I might be able to help out. Since the browser loads the css and js files separately, then need to be in a directory that is accessible by the outside world. Files under your WEB-INF directory cannot be accessed, so you cannot put your css and js files there.
Do you really need to access files relatively? My memory tells me that relative paths need to be from the location of the base tile file. I am not sure where the html:base tag fits into this. As I recall we had the html:base tag in our default layout
jsp but that caused us problems in production which uses https and an accelerator.
Here are a couple lines of code to load css and js files using absolute paths using the html:rewrite tag:
<link rel="stylesheet" type="text/css" href="<html:rewrite page='/css/style.css'/>" />
<script language="javascript1.2" type="text/javascript" src="<html:rewrite page='/js/common.js'/>"></script>
- Brent