Am working my way thru Ruby on Rails Tutorial: Learn Rails by Example
and am on this page:
http://railstutorial.org/chapters/static-pages#top
Am getting problems when I create an HTML page in the public directory
which is called public/hello.html and should appear as in Figure 3.3.
My problem is that when I try to create the page and make it appear at
http://localhost:3000/hello.html I don’t see the rendered page.
Instead, I get an error which says "Routing error No route matches “/
hello.html”
I have not made any changes to the routing; I thought that Rails was
supposed to be smart enough to find “hello.html” because it’s in the
same directory as the “public/index.html” page and the name of the
page is “hello.html”?
Can you please explain?
Paul D.
On 8 September 2010 10:01, pauld [email protected] wrote:
Instead, I get an error which says "Routing error No route matches “/
hello.html”
I have not made any changes to the routing; I thought that Rails was
supposed to be smart enough to find “hello.html” because it’s in the
same directory as the “public/index.html” page and the name of the
page is “hello.html”?
Could you just triple check the file name in public and in the url you
are typing. I believe the webserver looks in public first and only
goes on to look at routing if it cannot find it there. Does it work
if you ask for index.html? Is so I suspect a simple error somewhere.
Perhaps you have a space on the end of the filename for example. You
could try renaming the file to what you think it already is.
Colin
if the page is static is has to be in the public folder and rails does
not
interacts with it , its served by the webserver (webrick )
if its a static page but you are testing how tails work or is dinamic
and
you put it in a app/views/ folder you could have a controller for it,
then
rails works like this in your config directory there is a file called
routes.rb , in it are the definidtions of how rails reads the url
string,
there should be two that say
map.connect ‘:controller/:action/:id’
map.connect ‘:controller/:action/:id.:format’
this means that rails will interpret the url string in that sequence, it
will look for a controller after the http:localhost:3000/ with a
matching
name to the one in that
position in the url string then it will look for a template with the
name in
tha position.
so try commenting those 2 lines in the routes.rb file and see if you get
the
hello.html file