【问题标题】:How to create a Rails route with a dot at the base of the path?如何在路径的底部创建一个带有点的 Rails 路径?
【发布时间】:2016-07-21 15:03:07
【问题描述】:

我知道从技术上讲,通过使用约束来创建允许任何角色在其中的路径是可行的。但是,我发现不可能创建在路径底部有一个点的路径,例如

http://localhost:5000/.well-known/acme-challenge/

这是我一直使用的路线:

get ':my_root/acme-challenge/:id', to: 'pages#letsencrypt', constraints: {my_root: /.+/}

有人有什么想法吗?

【问题讨论】:

  • 我读过thisthis。然后找到了这个blog。并像get '/:my_root/acme-challenge/:id', to: 'settings#advanced', my_root: /.*/ 一样进行了测试,并且成功了。根据guide,可以在不使用constraint 关键字的情况下编写段约束
  • 我阅读了这些帖子并尝试了它们概述的所有内容,但似乎无法让它发挥作用......
  • 你也试过我的解决方案?因为它在这里工作。
  • 是的,这是我尝试的第一件事。当你说它对你有用时,你能详细说明你正在访问的路径吗?是不是和我的一样,即/.well-known/acme-challenge/123
  • 是的,我确实喜欢http://localhost:3000/.well-known/acme-challenge/123 ..

标签: ruby-on-rails


【解决方案1】:

看看蓝色的dynamic-segments你会发现

默认情况下,动态段不接受点 - 这是因为 dot 用作格式化路线的分隔符。如果您需要使用 点在动态段中,添加一个覆盖它的约束 - 例如, id: /[^/]+/ 允许除斜线之外的任何内容。

你可以试试

get ':my_root/acme-challenge/:id', to: 'pages#letsencrypt', controller: /my_roo\/[^\/]+/

希望对你有帮助

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-17
    • 2018-03-18
    相关资源
    最近更新 更多