This will also likely create a ton of 404s for the bogus image
requests that are made prior to your JS fixing the image URLs. If
your client likes to look at web logs to identify broken links, this
will become a headache.
I'm going to echo everyone else's sentiments that this is a bad idea.
This is a server-side problem, not client-side.
Have you considered using a PHP script as your CSS file? In your
markup, just link to a PHP file instead of a CSS file and use that as
your stylesheet. Then your PHP file can just define a $base_url
parameter once and use it as the start of all URLs in the stylesheet.
If your client's base URL changes, just change it once in the entire
CSS file. This way the end-user never has to know about the funny
business and they're getting proper background images from the start,
instead of slapping some duct tape on every page every hit (ick).
Mark
On Nov 16, 12:32 pm, Michel Belleville michel.bellevi...@gmail.com
wrote:
Well, the other option would be once the page is loaded to round all
elements of your page, pick the ones with a background-image and regexp them
to submission. I'd advise against this solution though, on the grounds that
:
- it's not really simpler than adding a background-image correcting
stylesheet
- there'd be images flickering while loading
- if you've got AJAX (and with CakePHP I bet you do have AJAX) you'll
have to trigger that after every AJAX call
On the other hand, having an alternate css turning up only on this part of
the site would be really easy, you can even use it with the standard
stylesheet and only change background-image properties as long as the
targets are the same as in the standard sheet and you put the link to the
alternate stylesheet after the standard.
Michel Belleville
2009/11/16 nomen gaston...@gmail.com
Hi:
Liam: My client needs to have the posibility to change itself the
image path and he is not a programmer, The maximun complication should
be to change a text by another text. Anyway I know it is a posibility
and I have it in mind.
Michel: I try to use the base tag but I´m using CakePHP and it
automatically puts in the links generathed by the HTML helper, the
subdirectory name. So it does not work correctly with those links
because the created links should be www.domain.com/subdir/subdir/img/
one.jpg http://www.domain.com/subdir/subdir/img/%0Aone.jpg.
Thank you anyway for your help.
On 16 nov, 18:03, Michel Belleville michel.bellevi...@gmail.com
wrote:
First idea that comes to mind is to let your client define another site
base, you then don't even have to change your css as the apparent site
base
would be the client's sub-directory.
You do that using the base tag as shown here :
http://www.w3schools.com/TAGS/tag_base.asp
Hope it helps.
Michel Belleville
2009/11/16 nomen gaston...@gmail.com
Hi all:
I have a website. All my images are in /img directory.
Now, my client needs to put the site in a subdirectory, so, my
images are now in /subdir/img.
In the future, maybe we have to change the site to another
subdirectory.
I don´t want to change all my CSS anytime the client changes the
subdirectory.
So my question is:
Is there a simple way to change all CSS background-image
property with the next logic:
Change all the existing CSS background-image
properties in this way:
if the url starts with /img change to /subdir/
img else do nothing
Thank you for your help in advance.