swa*_*ace 9 javascript templates handlebars.js
在我的模板中,我正在做类似的事情
<img class="someClass" src="{{imgURL}}">
Run Code Online (Sandbox Code Playgroud)
图像正确加载但我收到警告:
GET http://localhost:8888/%7B%imgURL%7D%7D 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
有没有办法来解决这个问题?
mu *_*ort 14
你有两个问题:
<img>但这不是什么大问题.<div>包含HTML 的隐藏或类似元素中.如果你这样说:
<div id="t" style="display: none">
<img class="someClass" src="{{imgURL}}">
</div>
Run Code Online (Sandbox Code Playgroud)
浏览器会将其解释<img>为真实图像并尝试加载src属性中指定的资源,这就是您的404:
GET http://localhost:8888/%7B%imgURL%7D%7D 404 (Not Found)
Run Code Online (Sandbox Code Playgroud)
来自.模板很少有效并且格式正确,因此您需要阻止浏览器将模板解释为HTML.通常的方法是将模板存储在<script>非HTML中type:
<script id="t" type="text/x-handlebars-template">
<img class="someClass" src="{{imgURL}}">
</script>
Run Code Online (Sandbox Code Playgroud)
然后你可以说你Handlebars.compile($('#t').html())得到你的编译模板,浏览器不会尝试将#t内容解释为HTML.
没有一个答案对我有用。我通过将图像转换为 base64 并将其作为把手模板中的 img src 发送来使其工作
模板.hbs
{{#if img_src}}
<img src="{{{img_src}}}" alt=""/>
{{/if}}
Run Code Online (Sandbox Code Playgroud)
源.js
data = {
img_src: base64img.base64Sync('./assets/img/test.png');
}
Run Code Online (Sandbox Code Playgroud)