Создать URL для файла в / public в Rails 2 ERB view - PullRequest
7 голосов
/ 25 ноября 2010

В моем приложении rails (v2.3.8) у меня есть статический файл ресурсов, который я поместил в /public/myfile.kml Нет необходимости в каких-либо специальных настройках rout.rb, верно?

Отлично подойдет на http://localhost:3000/myfile.kml

При развертывании (для пассажира) оно появляется на http://myserver/myappname/myfile.kml

Пока все хорошо ...

У меня есть представление (файл erb), в котором извергается javascript, который должен ссылаться на этот файл. Вывод должен быть '/myfile.kml' на локальном хосте и '/myappname/myfile.kml' на производстве, или, может быть, полные URL-адреса, как указано выше, или, может быть, относительный URL, включающий немного '../../ ../ '(неудобно с RESTful URL).

Должен ли я быть в состоянии сделать что-то вроде <% = url_for 'myfile.kml'%>?

или '<% = ROOT_URL%> / myfile.kml'

Я знаю, что есть безумно простой ответ на этот вопрос, но, честно говоря, мне не повезло найти его. Довольно много людей говорят о root_url, но что это? Переменная я могу ссылаться в представлении? Это не определено.

Ответы [ 6 ]

2 голосов
/ 25 ноября 2010

<%= RAILS_ROOT + "/public/myfile.kml" %>

2 голосов
/ 25 ноября 2010
'<%= ENV["RAILS_RELATIVE_URL_ROOT"] %>/myfile.kml'
2 голосов
/ 25 ноября 2010

Я не уверен в Rails 2.3.8, но в Rails 3 это значение по умолчанию равно false.

edit config/environments/production.rb и установлено:

config.serve_static_assets = true

Кроме того, вот сообщение в блоге, в котором показан помощник для ссылки на статический ресурс (favicon) http://ilconnettivo.wordpress.com/2008/07/28/favicon-on-rails/

1 голос
/ 25 сентября 2013

Проверка rake routes показывает помощника root_path для использования в представлениях. Например, <%= root_path + 'myfile.kml' %> По умолчанию будет отображаться на файлы в public / в приложении rails.

0 голосов
/ 26 ноября 2010

Почему бы просто не реплицировать свою производственную среду локально?Веб-сервер не очень требователен к ресурсам и может помочь решить некоторые проблемы с настройкой экосистемы, которые вы видите здесь

0 голосов
/ 25 ноября 2010

Последним (> 2.3.6) является Rails.root, см .: http://joneslee85.wordpress.com/2010/05/27/the-dilemma-of-rails-root-vs-rails_root-complex/

...