Tôi muốn có thể truy xuất URL cơ sở của ứng dụng web của tôi từ trong mã khởi tạo Rack trong số config.ru
của tôi. Nội dung nào đó dọc theo dòng:Tôi có thể lấy URL cơ sở của dịch vụ Giá của mình bên ngoài trình xử lý yêu cầu không?
puts "Starting up on http://#{ENV['SERVER_NAME']}:#{ENV['SERVER_PORT']}/#{ENV['MOUNT_POINT']}..."
nhưng tôi chưa tìm thấy bất kỳ thứ gì như thế này có sẵn từ bên ngoài trình xử lý yêu cầu. Rõ ràng, tôi có thể làm điều gì đó như:
...
def get
puts "Got a request for #{ENV['rack.url_scheme']}://#{ENV['HTTP_HOST']}#{ENV['REQUEST_PATH']}"
...
vì yêu cầu được xác định tại thời điểm đó. Nhưng khi bắt đầu tập tin cấu hình của tôi, không có biến nào trong số đó xuất hiện để xác định.
Có phương pháp Rack nào tôi có thể sử dụng để truy cập thông tin này không? Đây có phải là một trong những trường hợp mà những điều đó không được hoàn thành cho đến khi Rack startup được hoàn thành? Tôi dường như nhớ các khung công tác khác có cách để chuyển một proc tới một phương thức sẽ thực thi nó khi môi trường đã "sẵn sàng". Rack có bất cứ thứ gì như thế không?
Bạn đang cố gắng đặt gì trong config.ru cần thông tin này? – nictrix
Tôi không cố gắng * đặt * bất cứ điều gì, tôi chỉ nghĩ rằng nó là tốt đẹp cho các bản ghi để hiển thị nơi dịch vụ là - nó đặc biệt hữu ích khi một dev mới cố gắng thử nghiệm cho lần đầu tiên. – Coderer