mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
Add ability for relative_url_root to be specified via an environment variable RAILS_RELATIVE_URL_ROOT. Closes #4243.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3931 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
This commit is contained in:
parent
fddd33b81e
commit
240213177e
3 changed files with 26 additions and 2 deletions
|
@ -1,5 +1,7 @@
|
|||
*SVN*
|
||||
|
||||
* Add ability for relative_url_root to be specified via an environment variable RAILS_RELATIVE_URL_ROOT. [isaac@reuben.com, Nicholas Seckar]
|
||||
|
||||
* Fixed link_to "somewhere", :post => true to produce valid XHTML by using the parentnode instead of document.body for the instant form #3007 [Bob Silva]
|
||||
|
||||
* Added :function option to PrototypeHelper#observe_field/observe_form that allows you to call a function instead of submitting an ajax call as the trigger #4268 [jonathan@daikini.com]
|
||||
|
|
|
@ -163,9 +163,18 @@ module ActionController
|
|||
end
|
||||
|
||||
# Returns the path minus the web server relative installation directory.
|
||||
# This method returns nil unless the web server is apache.
|
||||
# This can be set with the environment variable RAILS_RELATIVE_URL_ROOT.
|
||||
# It can be automatically extracted for Apache setups. If the server is not
|
||||
# Apache, this method returns an empty string.
|
||||
def relative_url_root
|
||||
@@relative_url_root ||= server_software == 'apache' ? @env["SCRIPT_NAME"].to_s.sub(/\/dispatch\.(fcgi|rb|cgi)$/, '') : ''
|
||||
@@relative_url_root ||= case
|
||||
when @env["RAILS_RELATIVE_URL_ROOT"]
|
||||
@env["RAILS_RELATIVE_URL_ROOT"]
|
||||
when server_software == 'apache'
|
||||
@env["SCRIPT_NAME"].to_s.sub(/\/dispatch\.(fcgi|rb|cgi)$/, '')
|
||||
else
|
||||
''
|
||||
end
|
||||
end
|
||||
|
||||
# Returns the port number of this request as an integer.
|
||||
|
|
|
@ -105,6 +105,19 @@ class RequestTest < Test::Unit::TestCase
|
|||
@request.relative_url_root = nil
|
||||
@request.env['SCRIPT_NAME'] = "/collaboration/hieraki"
|
||||
assert_equal "/collaboration/hieraki", @request.relative_url_root
|
||||
|
||||
@request.relative_url_root = nil
|
||||
@request.env['SCRIPT_NAME'] = "/hieraki/dispatch.cgi"
|
||||
@request.env['SERVER_SOFTWARE'] = 'lighttpd/1.2.3'
|
||||
@request.env['RAILS_RELATIVE_URL_ROOT'] = "/hieraki"
|
||||
assert_equal "/hieraki", @request.relative_url_root
|
||||
|
||||
# @env overrides path guess
|
||||
@request.relative_url_root = nil
|
||||
@request.env['SCRIPT_NAME'] = "/hieraki/dispatch.cgi"
|
||||
@request.env['SERVER_SOFTWARE'] = 'apache/1.2.3 some random text'
|
||||
@request.env['RAILS_RELATIVE_URL_ROOT'] = "/real_url"
|
||||
assert_equal "/real_url", @request.relative_url_root
|
||||
end
|
||||
|
||||
def test_request_uri
|
||||
|
|
Loading…
Reference in a new issue