I have written a simple application for restaurant mgmt using angular 2 while learning. Now i am trying some advanced stuff like creating an app bundle, minifying and optimization of app.
My application loads properly with authentication component. It routes properly to home component after authentication. I have navigation bar at top. I can use that to navigate to different pages in my app and all that works fine. For example, I start with url localhost:3000 then I navigate to localhost:3000/home. Ultimately I reach to one page with url localhost:3000/consumption. Page is loaded properly. But if I refresh the page using browser refresh button then I get 404. If I keep using my navigation bar then everything works fine.
I am pretty sure, this issue is due to routing but tired different versions of routes but error persists.
My index.html is as follows:
<html>
<head>
<base href="/">
<title>Tilt45</title>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="styles.css">
<link rel="stylesheet" href="assets/stylesheets/bootstrap.min.css">
<link rel="stylesheet" href="assets/stylesheets/ng2-select.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js"></script>
<script src="node_modules/bootstrap/js/dropdown.js"></script>
<script src="https://use.fontawesome.com/b4147fc538.js"></script>
<link href="/favicon.ico" type="image/x-icon" rel="icon" />
<script src="node_modules/chart.js/dist/Chart.bundle.js"></script>
<!-- 1. Load libraries -->
<!-- Polyfill(s) for older browsers -->
<script src="node_modules/core-js/client/shim.min.js"></script>
<script src="node_modules/zone.js/dist/zone.js"></script>
<script src="node_modules/reflect-metadata/Reflect.js"></script>
<script src="node_modules/systemjs/dist/system.src.js"></script>
<!-- 2. Configure SystemJS -->
<!--<script src="systemjs.config.js"></script>
<script>
System.import('app').catch(function(err){ console.error(err); });
</script>-->
<!-- 3. add bundle -->
<script src="dist/bundle.min.js"></script>
</head>
<!-- 4. Display the application -->
<body>
<my-app>Loading..</my-app>
</body>
</html>
My app.routing.ts is as follows:
import { Router, RouterModule} from '@angular/router';
import {NavbarComponent} from './navbar/navbar.component';
import {AuthenticationComponent} from './components/authentication/authentication.component';
import {HomeComponent} from './home/home.component';
import {HotelsComponent} from './components/hotel/hotels.component';
import {NewHotelComponent} from './components/hotel/new-hotel.component';
import {RestaurantsComponent} from './components/restaurant/restaurants.component';
import {NewRestaurantComponent} from './components/restaurant/new-restaurant.component';
import {BarsComponent} from './components/bar/bars.component';
import {NewBarComponent} from './components/bar/new-bar.component';
import {LogMessageCategoriesComponent} from './components/log-message-category/log-message-categories.component';
import {NewLogMessageCategoryComponent} from './components/log-message-category/new-log-message-category.component';
import {LogMessagesComponent} from './components/log-message/log-messages.component';
import {LiquorCategoriesComponent} from './components/liquor-category/liquor-categories.component';
import {NewLiquorCategoryComponent} from './components/liquor-category/new-liquor-category.component';
import {LiquorsComponent} from './components/liquor/liquors.component';
import {NewLiquorComponent} from './components/liquor/new-liquor.component';
import {UserRolesComponent} from './components/user-role/user-roles.component';
import {NewUserRoleComponent} from './components/user-role/new-user-role.component';
import {UsersComponent} from './components/user/users.component';
import {NewUserComponent} from './components/user/new-user.component';
import {LiquorBottlesComponent} from './components/liquor-bottle/liquor-bottles.component';
import {NozzlesComponent} from './components/nozzle/nozzles.component';
import {NewNozzleComponent} from './components/nozzle/new-nozzle.component';
import {PoursComponent} from './components/pour/pours.component';
import {ConsumptionComponent} from './components/consumption/consumption.component';
export const routing = RouterModule.forRoot([
//{path:"", component: AuthenticationComponent}
//,
{path:"authenticate", component:AuthenticationComponent}
, {path:"home", component: HomeComponent}
, {path:"hotels", component: HotelsComponent}
, {path:"hotels/new", component: NewHotelComponent}
, {path:"hotels/:id", component: NewHotelComponent}
, {path:"restaurants", component: RestaurantsComponent}
, {path:"restaurants/new", component: NewRestaurantComponent}
, {path:"restaurants/:id", component: NewRestaurantComponent}
, {path:"bars", component: BarsComponent}
, {path:"bars/new", component: NewBarComponent}
, {path:"bars/:id", component: NewBarComponent}
, {path:"logmsgcategories", component: LogMessageCategoriesComponent}
, {path:"logmsgcategories/new", component: NewLogMessageCategoryComponent}
, {path:"logmsgcategories/:id", component: NewLogMessageCategoryComponent}
, {path:"logmsgs", component: LogMessagesComponent}
, {path:"liquorcategories", component: LiquorCategoriesComponent}
, {path:"liquorcategories/new", component: NewLiquorCategoryComponent}
, {path:"liquorcategories/:id", component: NewLiquorCategoryComponent}
, {path:"liquors", component: LiquorsComponent}
, {path:"liquors/new", component: NewLiquorComponent}
, {path:"liquors/:id", component: NewLiquorComponent}
, {path:"userroles", component: UserRolesComponent}
, {path:"userroles/new", component: NewUserRoleComponent}
, {path:"userroles/:id", component: NewUserRoleComponent}
, {path:"users", component: UsersComponent}
, {path:"users/new", component: NewUserComponent}
, {path:"users/:id", component: NewUserComponent}
, {path:"liquorbottles", component: LiquorBottlesComponent}
, {path:"nozzles", component: NozzlesComponent}
, {path:"nozzles/new", component: NewNozzleComponent}
, {path:"nozzles/:id", component: NewNozzleComponent}
, {path:"pours", component: PoursComponent}
, {path:"consumption", component: ConsumptionComponent}
, {path:"**", component: AuthenticationComponent}
]);