2016-04-07 17 views
0

Sinatra uygulamamı Yolcu ile Apache'yi kullanarak yapıyorum. Bir alt klasör içinde barındırılıyor - yani, ana sitem example.com, benim uygulama example.com/popcorn adresinde.Göreli URL'ler Sinatra'da nasıl çalışır?

Yani bir get '/' rotası var, ve bu iyi çalışıyor. Sorun şu ki, görünümüm upload için bir posta isteği yapan bir HTML formu ve post '/upload' rotasının ele almaması. example.com/popcorn/upload yerine, example.com/upload almaya çalışıyor.

Demek ki iyi bir çözüm değil, ideal çözüm değil, ama şimdilik form eylemi URL'sini kodlayacağım. Ama bu da işe yaramıyor - popcorn/upload eylemi de başarısız oluyor. Biraz şaşkın olduğum yer burası ve Google-fu'm zayıftı, orada yardım bulamadım.

Belki bir çeşit Apache yeniden yazma kuralım olabilir, ama bu doğru çözüm mü? Bir şey mi eksik? Buradaki ipucunu gerçekten takdir ediyorum çünkü çok basit bir şeyle uğraştığımı ve gerçekten de beni rahatsız ettiğini düşündüm.

cevap

1

Muhtemelen url helper method.

url('/upload') 

Yukarıdaki kod böyle bir şey için değerlendirecektir:

http://example.com/popcord/upload 

uygulamanıza İçerisinde herhangi bir değişiklik gerekmez, bu uygulama sunucusunda monte edilir bu noktada dikkate alır mevcut post '/upload' işleyicisine yönlendirilecek.