http404 Plugin

Overview

This postRenderer plugin for Scully will create a /404.html page for the configured /404 route. This is handy for generating custom 404 error pages within your Angular application while maintaining compatibility with the firebase hosting requirements for 404s.

Version 1.0.0 introduces breaking changes in the way the plugin is registered and configured. Please update your configurations

Installation

To install this library with npm run:

$ npm install @gammastream/scully-plugin-http404 --save-dev

Usage

Create a 404 route in the root router:

RouterModule.forRoot([
  {
    path: 'a',
    component: PageComponent,
  },
  {
    path: 'b',
    component: PageComponent,
  },
  {
    path: 'c',
    component: PageComponent,
  },
  {
    path: '',
    component: PageComponent,
  },
  {
    path: '404',
    component: Http404Component,
  },
  {
    path: '**',
    component: Http404Component,
  },
]);

Add the plugin to the defaultPostRenderers to execute it on the /404 route:

import { ScullyConfig, setPluginConfig } from '@scullyio/scully';
import { getHttp404Plugin } from '@gammastream/scully-plugin-http404';

const Http404Plugin = getHttp404Plugin();

export const config: ScullyConfig = {
  projectRoot: './src',
  projectName: 'scully-plugins',
  outDir: './dist/static',
  defaultPostRenderers: [Http404Plugin],
  routes: {
    '/products/:productId': {
      type: 'json',
      productId: {
        url: 'http://localhost:4200/assets/products.json',
        property: 'id',
      },
    },
  },
};

Build app and run scully like normal.

npm run build
npx scully

Questions or Issues

If you have any issues you can raise them here or contact me at: GammaStream