Deploying an Angular 6 Application to Netlify
Netlify is an excellent platform for building, deploying, and managing web applications. It supports automated deployment using GitHub webhooks and also provides some advanced features such as custom domains and HTTPS all for free. Deploying a Static Site to Netlify is a breeze. Although it does support running Angular JS applications, there are a couple gotchas in the deployment process that I had to wrangle together from various blog posts in order to get things to work.
Enable Redirects
The first issue that I ran into was after I deployed my site to Netlify, whenever I would click on an Angular link, I would get a 404 page.
[caption id=“attachment_698” align=“alignnone” width=“640”] Looks like you’ve followed a broken link or entered a URL that doesn’t exist on this site.[/caption]
Getting this to work is pretty simple. Ultimately you just need a file called _redirects
in the root of your web project. In order to get angular to create this you need to do the following things. This file will send all URL’s to the root of your application which allows the Angular router to kick in and do its thing.
- Create a
_redirects
file in thesrc
directory of your angular project.For most basic sites it should look something like this.
# src/_redirects /* /index.html 200
- Add this file to your
angular.json
file.Your
angular.json
file serves as a configuration for many different aspects of the angular CLI. In order to get this file into the root of your output directory you must define the file here. A snippet of my file is shown below. Update this configuration file and push all of your changes back up to GitHub.{ "$schema": "./node_modules/@angular/cli/lib/config/schema.json", "version": 1, "newProjectRoot": "projects", "projects": { "flagviz": { "root": "", "sourceRoot": "src", "projectType": "application", "prefix": "app", "schematics": {}, "architect": { "build": { "builder": "@angular-devkit/build-angular:browser", "options": { "outputPath": "dist/flagviz", "index": "src/index.html", "main": "src/main.ts", "polyfills": "src/polyfills.ts", "tsConfig": "src/tsconfig.app.json", "assets": [ "src/favicon.ico", "src/assets", "src/_redirects" ... rest of file
Configure your Netlify Project
Now that you have the redirects file in place. You can set up your project for automatic deployment with GitHub and Netlify.
Once you have logged into Netlify, click on New Site From Git and find the name of your project.
Configure Build Settings
The last step is to configure your build settings.
For Build command you should enter ng build –prod
.
For Publish directory you should enter dist/$NAME_OF_YOUR_PROJECT
.
Be sure to replace $NAME_OF_YOUR_PROJECT
with the actual name of your project.
Now you can click on Deploy site and once the initial deployment has completed you should see your new angular application running on Netflify with a working routing system.
Thank you for reading! Share your thoughts with me on bluesky, mastodon, or via email.
Check out some more stuff to read down below.
Most popular posts this month
- Now What?
- Setting up ANTLR4 on Windows
- SQLite DB Migrations with PRAGMA user_version
- Meritocracy?
- Possible Plagiarism Made me Cringe
Recent Favorite Blog Posts
This is a collection of the last 8 posts that I bookmarked.
- The Rise of Bluesky from Communications of the ACM
- Useful Bluesky Tools from Robb Knight • Posts • Atom Feed
- Re: Bluesky from Colin Devroe
- From the Red Hell to the Sky of Blue from Straphanger
- We don’t need to use what we make from Derek Sivers blog
- Ubuntu Summit 2024: A joyful experience filled with sorrow from Planet KDE | English
- Sabotage from jwz
- What if My Tribe Is Wrong? from Armin Ronacher's Thoughts and Writings
Articles from blogs I follow around the net
Storing times for human events
I've worked on various event websites in the past, and one of the unintuitively difficult problems that inevitably comes up is the best way to store the time that an event is happening. Based on that past experience, here's my current recommendati…
via Simon Willison's Weblog: Entries November 27, 2024Nothing is Something
There’s a post on htmx.org about why htmx wasn’t the right fit for a particular project (which is dope, we need more websites that admit their thing might not be the right thing all the time). The bit on AI being unfamiliar with their tool choice piqued my…
via Jim Nielsen’s Blog November 27, 2024Ella’s First Website
ULTRA PROUD DAD MOMENT: Ella made her first website! Melissa and I woke up on Saturday morning to our goofy 6-year-old daughter entering our bedroom making this obnoxious sound. It was impressively annoying, especially considering she hasn’t seen Dumb and…
via Blog – Brad Frost November 27, 2024Generated by openring