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"?
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.
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
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