Bagaimana cara menyediakan url gambar lokal dari aplikasi Rails 5 API saja

Kami hanya memiliki API, aplikasi Rails 5 (jadi tidak ada saluran pipa). Kami ingin API memberikan URL ke gambar di server kami. Gambar ini disediakan oleh Model. Gambar ini bisa hidup di app/assets/images atau public/images. Metode apa yang akan menambahkan host/domain saat ini ke nama file, dalam Model Rails?

Kami mengharapkan ActionController::Base.helpers.asset_url("solar.png") berfungsi, tetapi ini menghasilkan "\solar.png".

Kami telah menetapkan default_url_options ke "localhost:3000"

Dapat diterima jika model hanya menyediakan nama file dan penyaji tampilan pengontrol/json menyediakan bagian URL melalui pembantu. Saya katakan "dapat diterima", karena model kami memutuskan gambar apa yang harus dikembalikan. Terkadang gambar tersebut berasal dari server lokal, terkadang merupakan URL absolut dari server yang berbeda. Jika pengontrol menyediakan bagian URL, kita harus menangani kedua kasus ini secara terpisah.


person Matt Scilipoti    schedule 18.07.2019    source sumber


Jawaban (1)


Jawaban cepat:

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

Kesalahan umum adalah menyetel config.action_controller.default_url_options

Ingat Anda memiliki beberapa tempat untuk mengatur nama host Anda:

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

Seringkali nilainya sama, tetapi tidak setiap saat.

person jpheos    schedule 19.07.2019