繁体   English   中英

如何从仅 Rails 5 API 应用程序提供本地图像 URL

[英]How to provide local image urls from Rails 5 API only app

我们只有一个 API,Rails 5 应用程序(所以没有管道)。 我们希望 API 为我们服务器上的图像提供 URL。 此图像由模型提供。 此图像可以存在于app/assets/imagespublic/images 在 Rails 模型中,什么方法会将当前主机/域附加到文件名?

我们期望ActionController::Base.helpers.asset_url("solar.png")工作,但这会返回"\\solar.png"

我们已将 default_url_options 设置为“localhost:3000”

让模型只提供文件名并且控制器/json 视图渲染器通过帮助程序提供 URL 部分是可以接受的。 我说“可接受”,因为我们的模型正在决定应该返回什么图像。 有时该图像来自本地服务器,有时它是来自不同服务器的绝对 URL。 如果控制器提供 URL 部分,我们将不得不分别处理这两种情况。

快速回答:

# development.rb
config.action_controller.asset_host = "http://localhost:3000"
# production.rb
config.action_controller.asset_host = "http://yourdomain.com"

常见的错误是设置config.action_controller.default_url_options

记住你有几个地方可以设置你的主机名:

config.action_controller.default_url_options
config.action_mailer.default_url_options
config.action_controller.asset_host
# Maybe others, I'm not sure

它通常是相同的值,但并非每次都相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM