私のテンプレートでは、私は次のようなことをしています
<img class="someClass" src="{{imgURL}}">
画像は正しく読み込まれますが、次のような警告が表示されます。
GET http://localhost:8888/%7B%imgURL%7D%7D 404 (Not Found)
これを修正する方法はありますか?
私のテンプレートでは、私は次のようなことをしています
<img class="someClass" src="{{imgURL}}">
画像は正しく読み込まれますが、次のような警告が表示されます。
GET http://localhost:8888/%7B%imgURL%7D%7D 404 (Not Found)
これを修正する方法はありますか?
2つの問題があります。
<img>
ありませんが、それは大したことではありません。<div>
HTMLを含む非表示または同様の要素に保存されています。あなたがこれを言うならば:
<div id="t" style="display: none">
<img class="someClass" src="{{imgURL}}">
</div>
ブラウザはを実際の画像として解釈<img>
し、属性で指定されたリソースを読み込もうとしsrc
ます。これが404の場所です。
GET http://localhost:8888/%7B%imgURL%7D%7D 404 (Not Found)
から来た。テンプレートが有効で適切に形成されたHTMLになることはめったにないため、ブラウザがテンプレートをHTMLとして解釈しようとしないようにする必要があります。通常のアプローチは、テンプレートを<script>
HTML以外ので保存することtype
です。
<script id="t" type="text/x-handlebars-template">
<img class="someClass" src="{{imgURL}}">
</script>
次に、コンパイルされたテンプレートを取得すると言うことができHandlebars.compile($('#t').html())
、ブラウザは#t
コンテンツをHTMLとして解釈しようとしません。
答えはどれも私にはうまくいきませんでした。画像をbase64に変換し、それをハンドルバーテンプレート内のimgsrcとして送信することで機能するようになりました
template.hbs
{{#if img_src}}
<img src="{{{img_src}}}" alt=""/>
{{/if}}
source.js
data = {
img_src: base64img.base64Sync('./assets/img/test.png');
}
私はそれが遅いことを知っていますが、ここにあなたが望むことをする方法があります:
var view = Ember.View.create({templateName: 'myTemplate', myPicture: 'http://url_of_my_picture.png'});
view.appendTo('#myDiv');
<script type="text/x-handlebars" data-template-name="myTemplate">
<img {{bindAttr src="myPicture"}}>
</script>
トリプルブラケットを使用すると問題なく機能することがわかりました。
<img src="{{{your source}}}" alt={{{your alt}}} />