Escapování url v CSS v šabloně a IE6, IE7, IE9 v kompatibilním režimu – prostě IE
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Honza Kuchař
- Člen | 1662
Ahojte,
dnes jsem otevřel jeden projekt na IE a ejhle, chybí některé obrázky na pozadí. Jakto? Zkoumám vygenerované zdrojáky a zjišťuji, že Nette escapuje mezeru v URL:
<style>
background-image: url('...\/zdrojovy\ kod\/document_r...');
</style>
V šabloně samozřejmě bylo
<style>
background-image: url('{$basePath}/images/stin-stred.jpg');
</style>
Jen zkusmo, jsem zkusil nahradit `\ ` (zpětné lomítko a mezeru) za ` ` (mezeru) a vše funguje dokonale. Myslím, že fix bude jednoduchoučký. ;)
Mějte se fajn,
Honza Kuchař
- David Grudl
- Nette Core | 8228
Problém je ten, že CSS má své podkontexty, takže není úplně jasné, jak by měl s mezerou zacházet.
- Honza Kuchař
- Člen | 1662
Myslím, že vím na co narážíš (style="background-..."
).
Ale i tam to funguje:
<div style="background-image: url('\/01Vyvoj\/studiojeskynka\.cz-svn\/zdrojovy kod\/document_root/images/stin-stred.jpg');">
asdfasdf asdf asdf asdf asdf <br />sdfsdfsdf</div>
- Honza Kuchař
- Člen | 1662
Prima, můžeš to prosím fixnout i v Nette 0.9.x, tedy zde? https://github.com/…eHelpers.php#L107 Díky moc a přeji dobrou noc. ;)