Создание полного url-адреса для javascript в rails (аналогично javascript path, но url)
Как можно создать абсолютную ссылку на файл javascript.
Я предполагаю, что должно быть что-то вроде приведенного ниже (что, к сожалению, не представляется возможным):
javascript_url 'main' # -> 'http://localhost:3000/javascripts/main.js'
Вместо:
javascript_path 'main' # -> '/javascripts/main.js'
Мне нужен абсолютный URL, потому что этот файл javascript будет использоваться в букмарклете.
Кроме того, мне нужно то же самое для css-файла.
Спасибо,
Дмитрий.
3 ответа:
Абсолютные URL-адреса файлов javascript и css теперь доступны в Rails 4 в модуле ActionView::Helpers::AssetUrlHelper через конвейер активов. В вашем случае этоjavascript_url и его псевдоним url_to_javascript и соответствующие методы для таблиц стилей.
И результат в точности такой, как вы упомянули в своем вопросе:
Хотя этот вопрос был задан много веков назад, надеюсь, что он поможет людям, ищущим ответ на тот же вопрос в будущем.javascript_url 'main' # -> 'http://localhost:3000/javascripts/main.js'
Я написал этого маленького помощника, чтобы сделать это:
def absolute_javascript_url(source) uri = URI.parse(root_url) uri.merge(javascript_path(source)) end
Ключевой частью является URI.merge , который автоматически и правильно объединит относительный javascript_path с root_url.
Может быть, вы могли бы просто использовать
javascript_path
в сочетании сroot_url
?Например:
root_url + javascript_path("main")
root_url
автоматически генерируется вашим корневым маршрутом.Вы также можете настроить помощников Rails на использование определенного "базового пути", установив
ActionController::Base.asset_host
в файле конфигурации вашей среды. Подробнее читайте в документации .