Many thanks to Florian F. for the code snippet for handling URL
writing… It gave me an idea on how to solve my problem with IIS +
Subfolders / Apache + SCGI + subfolders
This is my first attempt at trying to override anything in Rails so
please be kind
Pick it apart though… Is this the right way to go about this code-wise
or is there something else I should be looking at, like maybe
AbstractRequest#relative_url_root() as was suggested on the dev site?
Should this be a plugin rather than doing what I’m doing?
If you need background information on this, see this posting
http://dev.rubyonrails.com/ticket/2602
Enough boring-ness. Here’s the code (again, borrowed much from Florian’s
example). I’m simply requiring this file from the production
environment.rb file. Everything “appears” to work as expected but I want
to see if anyone can see any potential problems.
vender/vdir_fix.rb
configure this for each application… Maybe this should go in
environment.rb as well?
BASE_URL = ‘/myvdirname’
module ActionController
Need this so stylesheets / JS files / images can be found
ActionController::Base.asset_host = BASE_URL
class UrlRewriter
alias old_rewrite_url rewrite_url
# url writing using the base dir specified above
def rewrite_url(path, options)
url = old_rewrite_url(path, options)
# let's dump the protocol and the host if it's a local url....
# This seemed necessary for redirect_to links.
url = url.gsub(@request.protocol + @request.host_with_port, '')
#now let's add the base_url to the url.
url = BASE_URL + url
url # return
end
end
end
Many thanks in advance to anyone who can help. We’re closer than ever to
being able to use Rails in our production environment!
-Brian H.