fir*_*dev 5 ruby-on-rails asset-pipeline ruby-on-rails-4
我想创建一个MissingImage这样的类:
class MissingImage
include ActionView::Helpers::AssetUrlHelper
def src format
return asset_path('layout/missing_image.png')
end
end
Run Code Online (Sandbox Code Playgroud)
要在模型中使用这样的:
def main_image
images.find(&:ismain) || images.first || MissingImage.new
end
Run Code Online (Sandbox Code Playgroud)
问题是 - asset_path当像这样使用时,只返回字符串而不与资产管道建立任何连接.
建议?
UPDATE
在搞砸之后我MissingImage有点重构,但它仍然没有在生产中生成签名的资产路径:
class MissingImage
def src format
return ActionController::Base.helpers.asset_path('layout/missing_image.png')
end
end
Run Code Online (Sandbox Code Playgroud)
返回的路径是 /assets/layout/missing_image.png
就我的目的而言,“/assets/icons/myimage.png”已经足够好了,但听起来您想要完全限定的路径。我认为如果你尝试获得一个绝对网址,你可能会有更好的运气。
您可以在 config.action_controller.asset_host 上设置选项,然后使用:
#{asset_path("布局/missing_image.png")}
查看此问题的已接受答案中的评论 - Rails 3.1 图像的绝对 URL
| 归档时间: |
|
| 查看次数: |
2859 次 |
| 最近记录: |