Pregunta

Hola a todos. Estoy usando borde lateral Incluye el barniz para almacenar en caché una cáscara de HTML estático, a continuación, incluir algo de HTML dinámico y un objeto JSON.

El ESI para HTML se está incluido correctamente, pero el ESI para el objeto JSON no se está incluido; instrucciones de depuración establecen que Barniz lo ve, pero inexplicablemente decide no incluir el JSON ESI.

Aquí está la estructura de carga:

page uncached. blank page with headers to set a cookie and esi 1
esi 1 cached. A bunch of static HTML, plus esi 2 and esi 3
esi 2 uncached. A JSON object which is different on every page load.
esi 3 uncached. Some HTML which updates with every page load.

Una vez más, esi 1 y esi 3 funcionan bien, pero esi 2 no está recibiendo incluido. El contenido en esi 2 es simplemente esto:


{session_page_history_id:24231}

Me leer ese código ESI, que no se ve como XML provoca errores, por lo que establece el parámetro de tiempo de ejecución esi_syntax = 0x7 . No hay dados, pero al menos yo estoy poniendo algunos datos de depuración ahora.

La llamada roto por esi 2 es similar al siguiente:


<esi:include src="http://www.domain.com/dynamic_esi/print_variables?esi__desired_var_names[]=session_page_history_id&for_esi=1"/>

Y la llamada (de trabajo) para esi 3 es similar al siguiente:


<esi:include src="http://www.domain.com/dynamic_esi/get_service_magic_html?&for_esi=1"/>

Como ya he mencionado, Barniz parece reconocer que estoy tratando de hacer un ESI incluyen, pero este es el mensaje de depuración sólo es relevante que recibo de varnishlog:


   25 Debug        c AddBit: 6997 <<![CDATA[

window.esi__values =

<esi:include src="http://www.domain.com/dynamic_esi/print_variables?esi__desired_var_names[]=session_page_history_id&for_esi=1"/>
;

 //]]>
 </script>
 <link rel="stylesheet" href="http://www.

La salida visto por un cliente contiene todo el contenido normal, pero con la etiqueta deja intacta. Se ve como lo que se ve en el mensaje anterior de depuración.

¿Alguien sabe por qué esi 2 está siendo analizada no / incluido? Cualquier ayuda sería muy apreciada!

¿Fue útil?

Solución

Así que al parecer la etiqueta ESI fue no conseguir procesada, ya que estaba dentro de un // [CDATA [bloque. Estoy seguro de que esto tiene algo que ver con el cumplimiento XML. Pensé que la fijación de esi_syntax = 7 evitaría este problema, pero resulta que eso sólo afecta al contenido de la propia ESI (que no levanta las comprobaciones de seguridad para el código que hace lo que incluye).

La solución será volver a trabajar mi solicitud para que el ESI es su propia etiqueta de script autónomo.

Otros consejos

Trate de añadir una barra invertida antes de la "Y" en la cadena de consulta.

Al menos conmigo barniz ignora todos los parámetros excepto la primera si no lo hace.

ej .:

Tal vez usted va a tener problemas con el "[" y "]" y que también tendrá una barra invertida.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top