【问题标题】:How to provide local image urls from Rails 5 API only app如何从 Rails 5 API only 应用程序提供本地图像 url
【发布时间】:2019-07-18 19:37:32
【问题描述】:

我们只有一个 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 部分,我们将不得不分别处理这两种情况。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-5


    【解决方案1】:

    快速回答:

    # 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
    

    它通常是相同的值,但不是每次。

    【讨论】:

      猜你喜欢
      • 2018-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多