2010-05-20 4 views
4

Я настроил facebooker для туннелирования моего приложения Ruby on Rails.stylesheet_link_tag, создающий абсолютные ссылки вместо относительных

Проблема в том, что я хотел бы протестировать локально. То есть, я не хочу начинать туннель каждый раз, когда хочу увидеть мои изменения.

Прямо сейчас, когда я запустить приложение с помощью ruby script/server (не называя rake facebooker:tunnel:background_start заранее), ссылки, созданные хелперов (например, stylesheet_link_tag, javascript_include_tag, IMAGE_TAG) предваряются мой tunnlr адрес: http://web1.tunnlr.com:myPort/. (Например, ссылка на CSS выглядит так в источнике страницы: http://web1.tunnlr.com:myPort//stylesheets/appName.css?1234567890.)

Я не хочу эту функциональность; Я не вижу изменений в CSS или JavaScript без необходимости запуска туннеля. Я хочу, чтобы ссылки были относительными, а не абсолютными. Таким образом, stylesheet_link_tag должен производить /stylesheets/appName.css?1234567890.

Кто-нибудь знает, почему это делается в первую очередь и как его исправить?

Заранее спасибо.

ответ

13

В AssetTagHelper используется ваш адрес asset_host. Я не уверен в том, facebooker устанавливает его для вас (я много о Facebooker не знаю), но вы можете сбросить его на ваш взгляд, не проблема:

Перед вашим stylesheet_link_tab просто переопределить хост URL:

ActionController::Base.asset_host = "localhost:3000" 
# or 
ActionController::Base.asset_host = "" 

Таким образом, используя Еврорадио это может выглядеть следующим образом:

<% ActionController::Base.asset_host = "" %> 
<%= stylesheet_link_tag "stylesheet.css" %> 

Walabing!

+2

Лучше поместить настройку в конфигурацию/среды/development.rb –

+0

+1 В зависимости от контекста вы можете выполнить 'ActionController :: Base.asset_host = root_url [0 ..- 2]' (' [0 ..- 2] ', чтобы обрезать конечную косую черту) – zelanix