【问题标题】:link_to works local, but doesn't work on Herokulink_to 在本地工作,但在 Heroku 上不起作用
【发布时间】:2018-01-29 04:00:00
【问题描述】:

我有一个使用 Ruby 2.3.0 和 Rails 5.0.0 构建的投资组合应用程序,其中包含指向在本地工作但在部署到 Heroku 时不起作用的外部 URL 的链接。

<%= link_to image_tag(project.index_image), project.url %>

有两种不同类型的链接不起作用并产生不同的症状。

外部应用程序链接
在生产中,指向我的其他应用程序的链接成功重定向到所需的 url,但 url 不会在浏览器中更新到新页面。

Github 链接
指向 github 的链接不起作用并重定向到空白屏幕。该屏幕在开发者控制台中显示以下错误:

Refused to display 'https://github.com/my_repo' in a frame because an ancestor violates the following Content Security Policy directive: "frame-ancestors 'none'".

【问题讨论】:

  • 仔细阅读这一篇。我不知道你是否有机会修改 heroku 上的代理服务器配置,但至少你会学到一件事 -)) content-security-policy.com
  • 感谢您的建议。只需阅读文档,我还没有尝试修改内容安全策略。想知道您是否有 gem 推荐,或者我是否最好通过 Heroku 进行修改?
  • 搜索rack-cors,几年前用过,不知道是否还在维护,是否有兼容rails 5的版本。

标签: ruby-on-rails ruby heroku link-to turbolinks


【解决方案1】:

尝试为自定义 URL 创建一个帮助类,如下所示

helpers/application_helper.rb

def custom_link(image, url)
    link_to image_tag(image), "#{url}"
end

视图看起来像这样

<%= custom_link project.index_image, project.url %>

我希望这应该可行,因为它是我自己的。

希望对你有帮助

【讨论】:

  • 感谢您的推荐。刚刚尝试按照描述创建一个辅助类。让它在本地工作,推送到 heroku 并且仍然有 github 链接失败并且项目链接正确呈现屏幕但没有更新 url 地址。刚刚注意到一些静态的、硬编码的 标签与 github 标签的执行方式相同,但目标页面没有呈现。
  • 请把网址放在这里,需要鼠标点击链接后查看网址格式
  • 网址是link。现在还注意到,当我右键单击并在新选项卡中打开时,链接重定向并正常工作。这只是一个常规的点击不起作用。我一直主要使用 Chrome,但在 Firefox 上看到了相同的症状。 Firefox 从 github.com 链接返回此错误:Blocked by Content Security Policy This page has a content security policy that prevents it from being loaded in this way. Firefox prevented this page from loading in this way because the page has a content security policy that disallows it.
【解决方案2】:

您可以尝试以下方法:

<%= link_to project.url do %>
  image_tag(project.index_image)
<% end %>

【讨论】:

    猜你喜欢
    • 2021-05-10
    • 1970-01-01
    • 2014-01-02
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-26
    • 2013-03-29
    相关资源
    最近更新 更多