---
myst:
html_meta:
"description": ""
"property=og:description": ""
"property=og:title": ""
"keywords": ""
---
# Deployment
The development bundle served by `ng serve` is not optimized for production.
To get a production-ready bundle, we use the following command:
```shell-session
$ ng build --prod
```
The resulting bundle is generated in the `./dist` folder.
It is just a set of static files and can be served by any HTTP server.
Let's say we deploy it on and we use Nginx to serve the files.
If we visit , we will see our home page, and if we click on `News`,
we will obtain thanks to angular-traversal.
But if decide to refresh the page at this point, we will get a 404, because our Nginx server will search for `/news/index.html` which does not exist.
So we need to fix our Nginx VHOST to preserve the client-side routing:
```
location / {
try_files $uri $uri/ /index.html;
}
```
This way, any existing file (like `index.html`, `vendor.xxx.bundle.js`, etc.) is served directly, but for anything else, we just return `index.html` so the client-side routing will take over.