The spec - http://www.w3.org/TR/CSS21/syndata.html#value-def-uri -
seems clear that url() is required (though quotes are not required).
I'd favor an option #3:
- Convert url();  anything other than than this syntax gets dropped
  and logged with a warning

But we should talk about the manner of URL conversion here;  IMO,
the rules should be:

- URLs beginning with a slash get prefixed with the context root
  (like other such URLs in JSF)
- URLs beginning with two slashes get trimmed to a single slash
  (special Trinidad URL rule, already used in Trinidad components)
- Relative URLs get interpreted as relative to the original .css file,
  and converted so that they are still valid references to the
  desired file.
- Other URLs (e.g., URLs with server names) are left alone.

So, if the context path is MyApp, and the skin is
at MyApp/skins/mySkin/skin.css

 url('http://foo/my.gif') -> http://foo/my.gif
 url('/my.gif') -> /MyApp/my.gif
 url('//images/my.gif') -> /images/my.gif
 url('images/my.gif') -> /MyApp/skins/mySkin/images/my.gif
 url('../../images/my.gif') -> /MyApp/images/my.gif

-- Adam



On 8/14/06, [EMAIL PROTECTED] <[EMAIL PROTECTED]> wrote:
Hello all,

I provided a patch for ADFFACES-121. However, I'm not totally satisfied
with it.

Before the patch, the code was only converting the urls of
background-image property when placed inside url( ). My patch converts all
values inside url( ) as well as background-image property value when not
placed inside url( ). For instance:

Skin:

background: url('images/myGif.gif');
background: images/myGif.gif;
background-image: url('images/myGif.gif');
background-image: images/myGif.gif;


Result with "MyApp" context root:

background: url('/MyApp/skins/mySkin/images/myGif.gif');
background: images/myGif.gif;
background-image: url('/MyApp/skins/mySkin/images/myGif.gif');
background-image: /MyApp/skins/mySkin/images/myGif.gif;


It's a kind of inconsistency that could mix the user I think. I therefore
see two possibilities:
1. Convert only but all values specified inside url( ), leaving others
unchanged.
2. Make sure the hard coded list of property names allowing property
values is exhaustive and document it accordingly.


Which one would be better? My vote goes to 1. since it will be easier to
document and maintain.


Regards,

Simon Lessard
Fujitsu Consulting

Reply via email to