short_open_tag a xml v šabloně
- _Martin_
- Generous Backer | 679
Mám následující šablonu:
{contentType text/xml}
<?xml version="1.0" encoding="utf-8"?>
Pokud mám povolenou direktivu short_open_tag
, vygeneruje se
následující kód:
\Nette\Environment::getHttpResponse()->setHeader("Content-Type", "text/xml") ;xml version="1.0" encoding="utf-8"?>
který bohužel způsobí Parse error.
Bylo by to „něco proti něčemu“, kdyby Nette vyžadovalo tuto direktivu vypnutou?
P.S. S touto chybou jsem se setkal po nasazení na ostrý web a nejprve jsem byl trochu zmatený, proč to generuje takovou divnou šablonu.
- Ondřej Brejla
- Člen | 746
short_open_tag
má s klasickou xml hlavičkou problém snad
vždy pokud vím? Proto sot
vždy zakazuji v .htaccess
a žádný problém se neobjevuje :-)
- Honza Marek
- Člen | 1664
_Martin_ napsal(a):
Bylo by to „něco proti něčemu“, kdyby Nette vyžadovalo tuto direktivu vypnutou?
To je nesmysl. Jednak to vůbec nesouvisí s frameworkem, druhak by takovým požadavkem prošlo 0,01% hostingů.
- _Martin_
- Generous Backer | 679
Honza Marek napsal(a):
_Martin_ napsal(a):
Bylo by to „něco proti něčemu“, kdyby Nette vyžadovalo tuto direktivu vypnutou?To je nesmysl. Jednak to vůbec nesouvisí s frameworkem, druhak by takovým požadavkem prošlo 0,01% hostingů.
Nebo kdyby na ní aspoň upozornilo, že může způsobit problémy – jako upozorňuje na jiné věci.
Možná to nesouvisí přímo s FW, ale zkus se na to podívat pohledem uživatele, který vyvíjí web v Nette, pak jej nahraje na server a web nejede – hlásí mu parse error v šabloně. Zkusíš Requirements Checker a podle něj je vše OK. Pak z toho budeš dost zmatený.
- _Martin_
- Generous Backer | 679
redhead napsal(a):
Pokud něco hlásí Parse Error, tak se podívám do cache šablony, a nerozjíždím requirement checker…
No normálně jo – ale když to běží na třech vývojových PC dobře, pak se udělá deploy na ostrý server a objeví se parse error ve frameworkem generované šabloně, tak první myšlenka je: na tom serveru je něco blbě, s čím si Nette neumí poradit – zapnutí Requirements Checkeru je jen dalším logickým krokem. A je jedno, že se nakonec zjistí, že nešlo o chybu v Nette.