This behavior sounds as if the server has not been configured to handle your use of html5 mode. Your server has no resources to serve for requests at paths such as /home, /about, and /contact. (Thus the 404.) You need to configure server side rewrites so that those requests will simply serve your index page. This way, if you paste in the url /about, the server serves the index page (which does exist) and your client side code takes care of displaying the "about" partial.
Even though it's a third party lib, the documentation for ui-router has great examples for a few server types (including Apache).