4

我设置了 facebooker 来隧道我的 Ruby on Rails 应用程序。

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

现在,当我使用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.

有谁知道它为什么首先这样做以及如何解决它?

提前致谢。

4

1 回答 1

14

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

在您stylesheet_link_tab覆盖主机 URL 之前:

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

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

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

瓦拉宾!

于 2010-05-24T02:10:33.770 回答