[ZPT] including text/xml templates inside a text/html template changes
Content-Type
Clemens Robbenhaar
zpt@zope.org
Wed, 29 Jan 2003 17:53:47 +0100
Hi Troy,
> I have a pt (index_html) that is text/html. Inside this template, I
> have something like this, twice:
>
> <pre tal:content="here/complex_dv_doc"></pre>
>
> This basically includes another template from the same folder. In this
> case, complex_dv_doc is a text/xml document which is html quoted
> automatically (because I didn't use structure). As those of you using
> IE will notice, this results in the Apache <- PCGI <- Zope monster
> returning my html document as Content-Type: text/xml. Since I use
> Mozilla/Linux all the time, I never noticed until a user told me my site
> had problems :(
>
> My question is this: Is that normal? If so, what should I do to fix it?
I do not know of what type the XML-thingy is which You inserting there.
Is this a "File" object?
Anyway, it seems this object sets the 'Content-Type' Header of the
response to 'text/xml' when rendering itself, even if it is rendered
via another object.
A hackish way is to change the header back (untested, sorry):
<pre tal:content="here/complex_dv_doc"></pre>
<tal:hack define="dummy python:request.RESPONSE.setHeader('Content-Type','text/html')" />
A less hackish way would be to call some method of the XML object,
which does return the contents wothout setting the 'Content-Type'
header. If such a method exists depends on the object You querying ...
Hope this helps,
Clemens