クライアント側のテンプレート ライブラリ Dust.js を使用しようとしています。「img」タグの「src」属性(コード中の{profile.picUrl})に、Ajax(Json形式)でサーバーから取得した値を入力したい。
問題は、Ajax 呼び出しが行われる前に、ブラウザーが画像を読み込もうとして HTTP 404 応答が返されることです (「src」にはテンプレート プレースホルダーが含まれています)。サーバーへの 404 リクエストなしでこれを行う方法はありますか?
問題を再現するサンプルを次に示します。
<body>
<div class="template">
hi {profile.user}
<img src="{profile.picUrl}" />
<div id="actions">
{#actions}
<a href="{url}">{text}</a><br /><br />
{/actions}
</div>
</div>
<script>
function fillTemplates(responsedat, status, xhr) {
if (status === "success") {
template = $('.template').html();
dust.compileFn(template,"t");
dust.render("t", responsedat, function (err,out) {
if (err) {
console.log(err);
return;
}
else {
$('.template').html(out);
}
});
$('.template').show();
}
}
$.get('landing.jsp', {}, fillTemplates);
$.ready(function () {
$('.template').hide();
});
</script>
</body>
PS: 中括弧 ({profile.user}) 内の名前は、dust.js 構文のテンプレートに値を入力するために使用されます