6

TemplateSyntaxError: unexpected char u'#'当我在由 Python Google App Engine 服务器提供的 HTML 文件中包含一个简单的 Mustache 模板时,我收到一个错误。

我想要包含的小胡子模板是:

{{#item}} {{name}} {{/item}}

我的 HTML 文件如下所示:

<!DOCTYPE html>
<html>
  <head>
    <script type="text/mustache-template" id="myTemplate">
      {{#item}}{{name}}{{/item}}
    </script>
  </head>
</html>

既然模板是用 type=text/mustache-template 包裹在脚本标签上的,那么服务器不应该忽略它吗?

我无法理解,为什么我会收到 TemplateSyntaxError 以及我应该怎么做才能摆脱它。有人有什么想法吗?谢谢!

4

1 回答 1

8

你没有这么说,但我猜你在服务器端使用 Django 或 Jinja2 模板。在这种情况下,他们不会忽略 mustache 脚本标签中的内容:一方面,他们对 mustache 一无所知,其次,实际上将服务器端模板标签放入 Javascript 中是相当普遍的做法,例如提供初始值对于功能。

在高于 1.5 的 Django 版本中,您可以将您的 mustache 标签与标签一起包装{% verbatim %}...{% endverbatim %}以防止服务器端评估。Jinja2 的等价物是 {% raw %}...{% endraw %}.

于 2014-01-05T12:17:16.950 回答