request.env ['REQUEST_URI']和request.env ['REQUEST_PATH']之间有什么区别?

Tom*_*man 17 ruby-on-rails

在Rails中request.env ['REQUEST_URI']和request.env ['REQUEST_PATH']有什么区别?它们似乎总是包含相同的值.

Pet*_*net 27

我相信delroth对于区别是正确的,但是在几乎所有情况下,最好在Request中使用方法而不是直接访问环境变量.

request.request_uri返回请求的URL,包括查询字符串和没有域.

request.path返回请求的路径,不包含查询字符串,域和任何相对根(如果您的应用程序从除root之外的目录运行).

请参阅Rails API for ActionDispatch :: Request以查看其他有用的方法.


Pie*_*don 10

我相信REQUEST_URI还包含查询GET参数,而REQUEST_PATH不是.但我不完全确定.

例如 :

  • REQUEST_URI = /foo/bar/?x=1&y=2
  • REQUEST_PATH = /foo/bar/