私は Django のビルトイン テンプレート システムと Underscore.js を使用しています。したがって、アンダースコアが認識してレンダリングする特別な文字をそのままにしておくために、Django が必要です。
django のバージョンを確認しましたが、1.5.3 です。
非常に簡単な例:
{% verbatim %}
<%= content %>
{% endverbatim %}
ただし、ブラウザでこれを表示すると、ソース コードは引き続き表示されます。
<%= content %>
明らかに、Underscore が HTML を取得すると、解析する適切なタグが見つからないため、何もする必要がありません。すでにいくつかのトラブルシューティング ソリューションを試しましたが、いずれも機能しませんでした。
- 「verbatim」のスペルを間違えるとエラーが発生するため、Django のテンプレート エンジンがタグを認識していると思われます。
- ジャンゴのバージョンを確認しています。「django をインポートします。django.VERSION' 1.5.3 を取得します。
- 同様に機能しなかった {% autoescape off %} タグの使用 (おそらく関連する問題)。
さらに手がかりが得られる場合に備えて、これが私のテンプレートの完全なテキストです。{% verbatim %} 以外のすべてのタグは、本来あるべきタスクを実行します。
{% extends "base.html" %}
{# Determine which navigation element is 'active' #}
{% block nav %}
{% with 'active' as lessons_active %}
{{ block.super }}
{% endwith %}
{% endblock %}
{% block content %}
<div class="col-md-2 lesson-left-menu">
<a href="#"><span class="glyphicon glyphicon-arrow-left"></span> Back to Lessons</a>
</div>
<div class="col-md-8 lesson-container">
<div class="slide multi-slide">
<div class="lesson-header">
{% verbatim %}
<h3><%= moduleTitle %> <small><%= title %></small></h3>
{% endverbatim %}
</div>
<!-- Populate dyn. based on # slides in lesson -->
{% spaceless %}
<div class="lesson-progress">
<div class="bar complete" style="width: 20%"></div>
<div class="bar complete" style="width: 20%"></div>
<div class="bar" style="width: 20%"></div>
<div class="bar" style="width: 20%"></div>
<div class="bar" style="width: 20%"></div>
</div>
{% endspaceless %}
{% verbatim %}
<%= content %>
{% endverbatim %}
<div class="well">
<ul class="answers short-multi greek-text" style="min-height: 40px">
</ul>
</div>
{% spaceless %}
{% verbatim %}
<% _.each(options, function(optionSet) { %>
<ul class="options short-multi greek-text inline">
<% _.each(optionSet, function(option) { %>
<li><a href="#" data-value="<%= option.value %>"><%= option.display %></a></li>
<% }); %>
</ul>
<% }); %>
{% endverbatim %}
{% endspaceless %}
</div>
</div>
{% endblock %}