Forum: Ruby on Rails Rails 2.3 really checks for presence of $RAILS_ROOT/public/index.html

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
Cec52f7ecf0594aa8104f6b19d06215f?d=identicon&s=25 Sudhir (Guest)
on 2009-03-21 01:28
(Received via mailing list)
Just sharing a Rail 2.3.2 upgrade experience. My app was running on
2.1.1 before I upgraded.

Most things worked but I could not get my default route in routes.rb
to work. The default route URL was "/". I had a route like this in
routes.rb as the very last route:

map.connect "", :controller => "foo", :action => "bar"

So users who went to the base URL would be directed to the foo
controller.

This stopped working with Rails 2.3.2 and I wasted half a day figuring
out what was wrong. Turns out, I just needed to delete public/
index.html. That's it. The same route works perfectly after deleting
that file.

There is a comment in the Rails code which mentions this but I don't
see it in the documentation for Rails routes.
36ed63ef68c172f148c491418395d0b5?d=identicon&s=25 rubyguy@ymail.com (Guest)
on 2009-03-21 09:51
(Received via mailing list)
On 21 Mar., 01:28, Sudhir <sud...@gmail.com> wrote:
> controller.
>
> This stopped working with Rails 2.3.2 and I wasted half a day figuring
> out what was wrong. Turns out, I just needed to delete public/
> index.html. That's it. The same route works perfectly after deleting
> that file.
>
> There is a comment in the Rails code which mentions this but I don't
> see it in the documentation for Rails routes.



On 21 Mar., 01:28, Sudhir <sud...@gmail.com> wrote:
> controller.
>
> This stopped working with Rails 2.3.2 and I wasted half a day figuring
> out what was wrong. Turns out, I just needed to delete public/
> index.html. That's it. The same route works perfectly after deleting
> that file.
>
> There is a comment in the Rails code which mentions this but I don't
> see it in the documentation for Rails routes.

As far as I know your web server will always look in the /public
directory to see if any files matches the request, if not it will pass
the request on to the app server. So this really shouldn't have worked
before either...

And by the way, you usually use map.root to make a route that matches
a request to the root:

map.root :controller => "foo", :action => "bar"

--
Cheers,
David Knorr
http://twitter.com/rubyguy
This topic is locked and can not be replied to.