Прямо сейчас я делаю a
get '/' do
set :base_url, "#{request.env['rack.url_scheme']}://#{request.env['HTTP_HOST']}"
# ...
haml :index
end
смочь использовать опции base_url в HAML index.haml. Но я уверен, что существует намного лучшее, DRY, способ сделать это. Все же я не вижу, ни нахожу его. (Я плохо знаком с Sinatra :))
Так или иначе, за пределами добираются, я не имею request.env в наличии, или таким образом, это кажется. Так вставляя его включение не работало.
Как Вы получаете свой базовый URL?
Пара моментов.
set
- это метод на уровне класса, что означает, что вы изменяете состояние всего приложения с каждым запросомhttp://foo.com
и https://foo. com
или если у вас есть несколько доменов, указывающих на один и тот же сервер приложения с помощью DNSЛучшей тактикой может быть определение помощника
helpers do
def base_url
@base_url ||= "#{request.env['rack.url_scheme']}://#{request.env['HTTP_HOST']}"
end
end
Если вам нужен базовый url вне ответа на запросы (не в блоке get/post/put/delete или представлении), лучше задать его вручную.