从 Rails 博客文章链接到 Rails 站点内的文章会生成文章/文章/文章名称路径

Posted

技术标签:

【中文标题】从 Rails 博客文章链接到 Rails 站点内的文章会生成文章/文章/文章名称路径【英文标题】:Linking to a post within Rails site from a Rails blog post produces posts/posts/article-name path 【发布时间】:2019-01-02 13:40:46 【问题描述】:

我是一个相当新的开发人员 ~ 1 年,我在 Rails 中建立了一个博客网站。

我有一个设置,如果我从主页点击帖子,它会转到 www.example.com/posts/article-name。

我决定为我的“联系”和“关于我”页面制作博客文章,然后在我的 layouts/_navbar.html.erb 文件中使用此语法从导航栏中链接到它们:

<li class="nav-item">
    <%= link_to 'About', "posts/about-me", class: "nav-link #yield(:about_active)" %>
</li>

当我从主页单击“关于”链接时,它工作正常,将我带到 www.example.com/posts/about-me

但是,如果我在一篇博客文章中并单击“关于”页面,它会将我带到 www.example.com/posts/posts/about-me

我对如何解决这个问题有点迷茫。我什至尝试对链接进行硬编码,但这似乎不起作用。任何帮助将不胜感激。

【问题讨论】:

你为什么不再次通过guides.rubyonrails.org/routing.html#path-and-url-helpers! 【参考方案1】:

关于绝对路径和相对路径,您需要了解一些事情。

相对路径是你尝试过的。

试试绝对路径

<%= link_to 'About', "/posts/about-me", class: "nav-link #yield(:about_active)" %>

【讨论】:

就像 Nithin 建议的那样,您忘记了路径开头的 / ,这使它成为相对的。这样做可以解决您的问题。更好的做法是使用 rails path helpers 而不是硬编码你的 url。 啊,我明白了。我没有注意到前面的 /。谢谢尼廷!

以上是关于从 Rails 博客文章链接到 Rails 站点内的文章会生成文章/文章/文章名称路径的主要内容,如果未能解决你的问题,请参考以下文章

NGINX +带Rails的乘客+ Wordpress固定链接

识别 Rails 中对 iframe 不友好的站点——即使标题中缺少 x-frame-options

Rails 从视图中调用操作

Rails 从数据视图链接到控制器中的操作

ruby 我的博客文章“Rails中更好的条件验证”的片段

Push Rails 3.2 站点被 Heroku 视为 PHP 站点