0

我正在将 Magento2 与 fpc、varnish、redis 和 Incapsula 一起使用,并且对于损坏的 html 内容,我面临着一种非常奇怪的行为。我有一个 phtml 文件,其中包含一些 php,后跟 javascript,如下所示:

<div class="some-class">
 <!--html -->
 </div>
 <script>
 //...
$element.wrap('<div class="red"></div>');
//..
</script>

在父模板(也是 phtml 文件)中,使用 php include 包含此文件(是的,这是 Magento 核心模块在不使用块的情况下包含它的方式):

<?php include 'path/to/file.phtml'; ?>

问题是在页面源代码上我得到了以下意外的 html:

<div class="some-class">
<!--html -->
</div>
<script>
//...
$element.wrap('<div class="red"></script></div>');
//..broken content here due to the moved script tag

注意移动的结束标签..

我知道这种情况可能由于几个问题而发生,但我怀疑 Incapsula 因为它被唯一发生问题的环境使用

请提出与缓存相关的可能方案,感谢任何帮助或想法。

谢谢

4

1 回答 1

0

尝试使用这种方式在 phtml 中回显其他 phtml。

<?php
echo $block->getLayout()
    ->createBlock("Magento\Framework\View\Element\Template")
    ->setTemplate("Your_Module::file.phtml")
    ->toHtml();
?>
于 2020-03-22T22:44:30.277 回答