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
+
0
-

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 | 8169
+
0
-

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
+
0
-

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>
David Grudl
Nette Core | 8169
+
0
-

fixed

Honza Kuchař
Člen | 1662
+
0
-

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. ;)