2014-01-05 32 views
4

當我在Python Google App提供的HTML文件中包含一個簡單的Mustache模板時,出現TemplateSyntaxError: unexpected char u'#'錯誤引擎服務器。獲取TemplateSyntaxError:在包含由Python提供的html文件中的Mustache模板的意外字符u'#'Google App Engine

,我想包括鬍子模板是:

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

我的HTML文件看起來像這樣:

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

,因爲模板是圍繞script標籤包裹類型=文本/小鬍子模板,服務器不應該忽略它嗎?

我無法理解,爲什麼我得到TemplateSyntaxError,應該怎麼做才能擺脫它。 任何人有任何想法? 謝謝!

+1

你還沒有說過錯誤是由JavaScript還是在後端生成的。您是否也使用基於服務器的模板系統,在這種情況下,腳本標籤內的內容通常也會被處理,具體取決於模板系統。 –

+0

錯誤在後端生成。我在服務器上使用Jinja2模板。 –

回答

7

你不這麼說,但我猜你在服務器端使用Django或Jinja2模板。在這種情況下,不會忽略鬍鬚腳本標籤中的內容:一方面,他們對鬍鬚一無所知,其次,實際上將服務器端模板標籤放入Javascript中是相當常見的做法,例如提供初始值用於功能。

在Django版本大於1.5的情況下,您可以使用{% verbatim %}...{% endverbatim %}標籤封裝您的鬍子標籤以防止服務器端評估。 Jinja2的等價物是{% raw %}...{% endraw %}

+0

謝謝!我在服務器端使用Jinja2模板。添加原始標籤的工作! –

+0

也與燒瓶應用程序生成器模板一起工作。 – ahmadalibaloch

相關問題