如何让Rails(5、6或7)创建/使用连字符的url(而不是下划线)?
尽管 Rails 默认在 url 中使用下划线,但使用连字符有很好的 SEO 理由。一个非常引人注目的例子是,谷歌将“/blue-socks”识别为“blue socks”这两个单词,而“/blue_socks”是非单词“blue_socks”……这有时对 SEO 很重要。
AFAIK Ruby 不容易在方法名称中使用连字符,因此所有 Rails url 助手都假定多单词方法 ,因此 路由将使用下划线而不是连字符,例如 def蓝色袜子。
例如,控制器方法 blue_socks
将有一个路径 blue_socks_path
,而 url 帮助器 url_for
需要一个带下划线的路径并返回一个带下划线的 url 。
早在 2013 年,就有几个 SO 问题询问如何让 Rails 生成和使用更适合 SEO(带连字符)的 url,答案涉及猴子修补 Rails。
在更现代的 Rails 中,比如 5 及更高版本,是否有对连字符路由 url 的内置支持?
Although Rails defaults to underscores in urls, there are good SEO reasons to use hyphens. One pretty compelling example is that Google recognizes "/blue-socks" as the two words "blue socks" whereas "/blue_socks" is the non-word "blue_socks"... and that's sometimes important for SEO.
AFAIK Ruby doesn't make it easy to use a hyphen in a method name, therefore all Rails url helpers assume multiple-word methods and therefore routes will use underscores instead of hyphens, eg, def blue_socks
.
For example a controller method blue_socks
will have a path blue_socks_path
and the url helper url_for
expects a path with an underscore and returns a url with an underscore.
Back in 2013 there were a couple SO questions asking how to get rails to generate and use urls that are better for SEO (with hyphens) and the answers involved monkey patching Rails.
In more modern Rails, say 5 and up, is there any built-in support of hyphenated route urls?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论