【发布时间】:2013-11-14 09:52:10
【问题描述】:
只是偶然发现了一个问题,到现在还无法解决。设置如下:
我有一个从数据库中提取并呈现为 html 的 ERB 模板
Class MyController < ApplicationController
include AssetTagHelper
...
def Show
template=Page.find(...) # <%=image_tag('Test.png')%>
@html=ERB.new(template).result(binding)
end
...
现在问题是 image_tag 'src' 解析为 '/images/Test.png',而通常它应该解析为 '/assets/Test.png'。所以我查看了AssetTagHelper 的rails 源代码,这导致我找到AssetUrlHelper 和以下调用链:image_path => asset_path => compute_asset_path。并且 compute_asset_path 合法地声明它实际上应该解析为 /images/Test.png...
我在这里缺少什么?我怎样才能使图像标签工作并给我'assets/Test.png'?
提前感谢所有回复!
【问题讨论】:
-
如果你知道它总是需要解决什么问题,为什么不直接使用它呢?所以与其返回 .erb 然后在渲染之前处理它,为什么不把你需要的 html 存储在数据库中呢?
标签: ruby-on-rails ruby ruby-on-rails-3 asset-pipeline erb