之前图片还是一直用 css 做 background image 都没有发现这样的问题。
因为用 handlbars 了,用不了 rails 的image_tag那应该怎么样把图片放到 hanlbars 呢? 单纯的<img />那是肯定不行了。
image_tag
<img />
handlebars 是模板引擎吧,用不了 rails 的 image_tag 是啥意思?
handlerbars 只是 template, 你用的 Javascript 方案是什么。
如果前端是用 JSON 来获取数据的话,呼叫 API,让 Rails API 给出 image_tag 就可以了。
#1 楼 @saiga 因为image_tag "img.jpg"的话,最后在正式环境,图片名字会变成img_xxxxx.jpg,所以要正常使用图片,只有使用image_tag,直接用<img src="img.jpg">是无法在正式环境显示图片的。
image_tag "img.jpg"
img_xxxxx.jpg
<img src="img.jpg">
#2 楼 @billy 图片那块只是静态显示,不是想用 json 显示。因为<img src="img.jpg">无法显示图片,所以看看有什么方法显示?
@QueXuQ 正常理解的话,静态图片应该是全局化的,那这块就不要用 handlerbars 输出了,如果可能,直接在 layout html 里面做。
如果不是全局化的图片,那这些图片肯定是和特定页面有关的,所以。。。还是用 JSON 吧。
可以尝试使用这个 gem,https://github.com/leshill/handlebars_assets 当然,其实在hbs文件后面,加上hbs.erb,然后<img src="<%=asset_path('logo.png')%>">也是可行的。
hbs
hbs.erb
<img src="<%=asset_path('logo.png')%>">