【问题标题】:How to redirect the visitors to another site in Middleman?如何将访问者重定向到 Middleman 中的另一个站点?
【发布时间】:2015-01-30 20:03:37
【问题描述】:

在 PHP 中重定向到另一个站点非常很容易。如果他们想将访问者从 "www.yoursite.com/news" 重定向到 "www.bbc.com"...我所要做的就是制作“ news" 文件夹并在其中创建一个 index.php 文件并添加以下行:

<?php
   header("Location: http://www.bbc.com/");
?>

我已经完成了!但是我最近开始研究一个用 Ruby 编写的项目,并且很难弄清楚如何完成这个简单的任务:

这可能是一个非常愚蠢的问题,但任何帮助将不胜感激!

更新:

所以发现这个项目是使用静态站点生成器Middleman来构建站点的,所以没有routes.rb文件。它只有config.rb。谁能帮我弄清楚如何在中间人中重定向?

第二次更新:

看起来因为中间人,这种重定向不可能那么简单。所以我在问这个(非常愚蠢的)问题:How to redirect URL in Javascript or jQuery

【问题讨论】:

  • 那么您使用的是 Ruby on Rails 还是 Middleman? O_o
  • 它是用 Ruby 编写的,并使用 Middleman 静态站点生成器

标签: ruby redirect middleman


【解决方案1】:

所以终于找到了一个简单的方法来解决我的问题:)

为了将 www.yoursite.com/news 重定向到 www.bbc.com,首先我在 source 文件夹下创建了一个 news.html.erb 文件(你有你的index.html.erb 文件)。在那个文件中,我添加了以下几行和wallaaahhhh!

<% content_for :body_content do %>
  <script type="text/javascript">
    // Javascript URL redirection
    window.location.replace("http://www.bbc.com/");
  </script>

  <noscript>
    // Using HTML refresh meta tag as a fail back in case the user has javascript disabled
    <meta http-equiv="refresh" content="0;URL=http://www.bbc.com/">
  </noscript>
<% end %>

这里我要提一提的是most sites 建议

使用window.location.href,因为replace() 不会将原始页面放入会话历史记录中,这意味着用户不会陷入无休止的后退按钮过程。

但就我而言,window.location.href 并没有做到这一点:(

【讨论】:

    【解决方案2】:

    您需要在 routes.rb 中设置自定义路由:

    get "/news" => redirect("http://bbc.com")
    

    【讨论】:

    • 但我如何告诉 RoR 仅在 url 为“www.yoursite.com/news”时重定向?
    • 谢谢Thomas O,我认为您修改后的答案正是我想要的。现在我只需要弄清楚为什么这个项目没有 routes.rb 文件:(
    • 是的,这很奇怪。祝你好运!
    猜你喜欢
    • 2021-09-07
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-14
    相关资源
    最近更新 更多