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

use*_*421 4 ruby-on-rails tunneling facebooker

我设置了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.

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

提前致谢.

Jay*_*Jay 14

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

在您stylesheet_link_tab刚刚覆盖主机URL之前:

ActionController::Base.asset_host = "localhost:3000"
# or
ActionController::Base.asset_host = ""
Run Code Online (Sandbox Code Playgroud)

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

<% ActionController::Base.asset_host = "" %>
<%= stylesheet_link_tag "stylesheet.css" %>
Run Code Online (Sandbox Code Playgroud)

Walabing!

  • 最好将设置放入config/environments/development.rb (2认同)