<script>标记中的Diazo外部src会破坏rules.xml

Dan*_*Dan 3 plone diazo

概观

在您的网站上创建自定义Google地图地图时,您需要包含托管在其服务器上的Google API库.

为了尽可能快地保持事物,我使用条件规则在页面上包含各种脚本,具体取决于所需的内容.

在这个过程中,我担心我可能已经发现了Diazo的错误,但如果我错了请告诉我.

注意: 我已经提交了一份错误报告.我以为我会问这里任何人都有类似的经历,并且知道解决问题或解决问题.

问题

如果你包含一个不是本地的src,它似乎会破坏我的Diazo规则文件,因此Plone站点会呈现默认的SunBurst主题,而不是我的自定义Diazo主题.

打破一切的规则如下:

<rules css:if-content="#map">
 <append theme="/html/body">
   <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=XXXX&sensor=false"></script>
 </append>
</rules>
Run Code Online (Sandbox Code Playgroud)

我试过从规则中删除https:只留下http:,我也尝试完全删除它只留下两个斜杠.这两项都没有奏效.我在该规则中包含其他脚本,当我注释掉上面的<script>标记时,它可以正常加载它们.

解决

我知道我可以简单地给脚本一个ID,将它添加到我的HTML模板并使用我rules.xml删除它,除非我的规则得到满足,但我宁愿让Diazo添加脚本如果需要它而不是每次都丢弃它页面已送达.

任何想法为什么这个外部<script> src=属性给我这样的仇恨?

谢谢!

Thi*_*elo 5

我认为您的文件不是100%有效的XML(例如:通过包含包含&符号的URL).

尝试在验证器中检查它.

  • 当您使用<after theme ="...">插入我</ after>之类的构造时,内容将被视为XML文本,除非它被识别为XSLT.遵循XML文本的规则,由于未转义的&符号,您有一个错误的实体"&s". (3认同)