ruby-on-rails - stylesheet_link_tag 生成绝对链接而不是相对链接

标签 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 地址前面加上: http://web1.tunnlr.com:myPort/ 。 (例如,页面源代码中的 CSS 链接如下所示: http://web1.tunnlr.com:myPort//stylesheets/appName.css?1234567890 。)

我不想要那个功能;如果不先启动隧道,我就无法看到我的 CSS 或 JavaScript 更改。我希望链接是相对的,而不是绝对的。所以, stylesheet_link_tag 应该产生 /stylesheets/appName.css?1234567890

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

提前致谢。

最佳答案

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

在您的 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" %>

哇!

关于ruby-on-rails - stylesheet_link_tag 生成绝对链接而不是相对链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2871304/

相关文章:

ruby-on-rails - Ruby on Rails 项目的设计问题

ruby-on-rails - 使用 Facebooker 在 Rails View 中使用 FBML

java - HTTP 代理连接共享

c# - WPF 按钮隧道化 OnClick 事件

ruby-on-rails - raise_error 规范在 Rspec 3.4 中不返回 true

ruby-on-rails - 使用 Rspec on Rails 6 测试 Controller 问题

ruby-on-rails - rSpec - 如何在模型方法中测试选择

ruby-on-rails - Facebooker 扩展权限?

Java Web 启动 : Unable to tunnel through proxy since Java 8 Update 111