Ruby on rails Rails4:图像\u url未在控制器中生成摘要

Ruby on rails Rails4:图像\u url未在控制器中生成摘要,ruby-on-rails,assets,sprockets,Ruby On Rails,Assets,Sprockets,我有以下代码: class ExampleControllermsg} 结束 结束 结束 这给了我这个回答: { status: "ok", message: "Success!", image_url: 'images/image.png' } {状态:“确定”,消息:“成功!”,图像_url:'images/image.png'} 我期待着这样的事情: { status: "ok", message: "Success!", image_url: 'assets/image-37bf76b

我有以下代码:

class ExampleControllermsg}
结束
结束
结束
这给了我这个回答:

{ status: "ok", message: "Success!", image_url: 'images/image.png' } {状态:“确定”,消息:“成功!”,图像_url:'images/image.png'} 我期待着这样的事情:

{ status: "ok", message: "Success!", image_url: 'assets/image-37bf76be1.png' } {状态:“确定”,消息:“成功!”,图像_url:'assets/image-37bf76be1.png'}
问题是什么?

我认为如果要从控制器渲染图像,需要使用
查看上下文。图像url

我认为如果要从控制器渲染图像,需要使用
查看上下文。图像url

正如born4new建议的那样,您需要使用
image\u url
正确引用资产管道中的图像但是,我不建议在此处使用资产管道。请记住,当您预编译资产时,您的资产摘要URL可能会更改。由于您是从API提供此值,这意味着您将使用URL进行响应,该URL可能会在重新编译资产后呈现404


相反,您应该考虑从代码<公有/ < /代码>文件夹中为您的图像服务静态资产。这样,在重新部署或重新生成资产后,API的任何使用者都可以可靠地访问这些文件。

正如born4new建议的那样,您需要使用
image\u url
从资产管道正确引用图像但是,我不建议在此处使用资产管道。请记住,当您预编译资产时,您的资产摘要URL可能会更改。由于您是从API提供此值,这意味着您将使用URL进行响应,该URL可能会在重新编译资产后呈现404


相反,您应该考虑从代码<公有/ < /代码>文件夹中为您的图像服务静态资产。这样,API的任何使用者都可以在重新部署或重新生成资产后可靠地访问这些文件。

如果您当前的Rails环境不是生产环境,这是完全正常的。我的环境是开发环境,但当我请求
http://localhost:3000/images/image.png
它返回404。当我在rails视图中使用“image\uURL”时,它可以正常工作并添加摘要哈希。为什么它不能在控制器中工作?如果您当前的Rails环境不是生产环境,这是完全正常的。我的环境是开发环境,但当我请求
http://localhost:3000/images/image.png
它返回404。当我在rails视图中使用“image\uURL”时,它可以正常工作并添加摘要哈希。为什么它不能在控制器中工作?Thaks如果您没有缓存问题,这是一个很好的解决方案。Thaks如果您没有缓存问题,这是一个很好的解决方案。