stylesheet_link_tag生成绝对链接而不是相对链接

时间:2010-05-20 05:46:28

标签: ruby-on-rails facebooker tunneling

我设置facebooker来挖掘我的Ruby on Rails应用程序。

问题是我想在本地测试。也就是说,每次我想看到我的更改时,我都不想要启动隧道。

现在,当我使用ruby script/server启动应用程序(不事先调用rake facebooker:tunnel:background_start)时,帮助程序创建的链接(例如,stylesheet_link_tag,javascript_include_tag,image_tag)将以我的tunnlr地址作为前缀:{{ 3}}。 (例如,页面源中的CSS链接如下所示:http://web1.tunnlr.com:myPort/。)

我不想要那个功能;我不能在不必先启动隧道的情况下看到我的CSS或JavaScript更改。我希望链接是相对的,而不是绝对的。因此,stylesheet_link_tag应该生成/stylesheets/appName.css?1234567890

有没有人知道它为什么会这样做,以及如何解决它?

提前致谢。

1 个答案:

答案 0 :(得分:14)

AssetTagHelper使用您的asset_host网址。我不确定facebooker是否为您设置了它(我对facebooker了解不多),但您可以在视图中重置它没问题:

stylesheet_link_tab覆盖主机网址之前:

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

所以使用ERB可能看起来像这样:

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

Walabing!