簡體   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