[ic] Re: css background command

Davor Ocelic docelic at mail.inet.hr
Fri Aug 12 05:17:04 EDT 2005


> I don't think you need to be changing the DirectoryIndex. Don't think what 
> is happening is related to that. 
> 
> The above shown DocumentRoot  /home/testsite-site  is the document root for 
> your SSL aswell as your nonSSL site? I suppose you are having configuration 
> settings for both instances? 
> 
> I would suggest that you check the DocumentRoot for both SSL and nonSSL 
> apache configs and set the DocumentRoot the same for both. Then remove the 
> absolute URL's for the images (so no http/https://.....) and see if that 
> solves your problem. Good luck. 

Yes, I also think your problem is not related to what you think it is.

First of all, if you have the CSS embedded in the HTML pages, then 
all references to external files (like images, in this case) are treated
relative to the HTML file.

So, your setting of 

  background-image: url(blueyellow/catbar2.jpg);

has two problems:

1) every directory from which you access pages, must have "blueyellow"
   subdirectory in it with all the contents (well, either the real directory
   or a symlink to it).

   http://www.testsite.com/cgi-bin/testsite/index.html
   http://www.testsite.com/cgi-bin/testsite/dir2/index.html

   The above two page examples require "blueyellow/" directory present in 
   both IC catalog's pages/ and pages/dir2/ directory. As you see, however,

2) since you are accessing the pages over cgi-bin, a relative image path
   specified in CSS will be looking for images not in your DocumentRoot, but in 
   Interchange's space, in pages/ directory or its subdirectories.
   This isn't going to work at all, because Interchange does not allow you to
   fetch images like this, unless you enable the DeliverImage directive.

So you have two solutions:

1) in your Apache document root, create say, "img/blueyellow/" directory with all the 
   contents.

   Then, in CSS, access images using "/img/blueyellow/...." paths.
   In Interchange pages, access images with <image src="blueyellow/....">,
      after you make sure that ImageDir directive is set to $DocumentRoot/img/
      in the catalog.cfg file.

2) instead of providing CSS directly in the page, include the external
   file with CSS definitions:

   <link rel="stylesheet" type="text/css" media="screen, tv, projection"
      href="/css/www.css" title="Default" />

   Then, all the files you reference from the CSS file will be treated relative
   *to the CSS file* and not the HTML page, so you could get away with using
   relative URLs in external file specification.

   The /css/ directory above should be located in your Apache DocumentRoot
   as well, but keeping it in Interchange pages/ space (if you want Interchange
   to operate on the files in there) is possible too (with a little "trick"),
   if you rename all .css files to .css.html.


Hope it clears the things up for you,
-doc


More information about the interchange-users mailing list