Генерация полного URL-адреса для JavaScript в рельсах (аналог javascript_path, но URL-адрес) - PullRequest
6 голосов
/ 21 декабря 2009

Как можно сгенерировать абсолютную ссылку на файл javascript.

Я предполагаю, что должно быть что-то вроде приведенного ниже (которое, к сожалению, кажется недоступным):

javascript_url 'main' # -> 'http://localhost:3000/javascripts/main.js'

вместо:

javascript_path 'main' # -> '/javascripts/main.js'

Мне нужен абсолютный URL, потому что этот файл javascript будет использоваться в закладке.
Кроме того, мне нужно то же самое для файла CSS.

Спасибо
Дмитрий.

Ответы [ 3 ]

6 голосов
/ 31 марта 2015

Абсолютные URL для файлов javascript и css теперь доступны в Rails 4 в ActionView :: Helpers :: AssetUrlHelper через конвейер активов. В частности, в вашем случае это javascript_url и его псевдоним url_to_javascript и соответствующие методы для таблиц стилей.

И результат в точности такой, как вы упомянули в своем вопросе:

javascript_url 'main' # -> 'http://localhost:3000/javascripts/main.js'

Хотя вопрос задавался давным-давно, надеюсь, он поможет людям, которые ищут ответ на тот же вопрос в будущем.

2 голосов
/ 18 сентября 2010

Я написал этого маленького помощника для этого:

def absolute_javascript_url(source)
  uri = URI.parse(root_url)
  uri.merge(javascript_path(source))
end

Ключевая часть: URI.merge , которая автоматически и правильно объединит относительный javascript_path с root_url.

1 голос
/ 21 декабря 2009

Может быть, вы могли бы просто использовать javascript_path в сочетании с root_url?

Например:

root_url + javascript_path("main") 

root_url автоматически генерируется вашим корневым маршрутом.

Вы также можете настроить помощники Rails для использования определенного «базового пути», установив ActionController::Base.asset_host в файле конфигурации вашей среды. Подробнее читайте в документации .

...