Skip to content

A tiny piece of JavaScript code that allows websites to set fallback URLs for their JS, CSS and image resources.

License

Notifications You must be signed in to change notification settings

huajiejin/url-fallback

Repository files navigation

Url Fallback

NPM version NPM total downloads E2E tests Unit tests

A tiny piece of JavaScript code that allows websites to set fallback urls for their js, css and img resources.

Getting Started

You can include and setup url fallback rules with:

<script data-url="your-cdn.com" data-fallbacks="your-backup-cdn.com,your-static-server.com/change/path" data-url-fallback src="https://cdn.jsdelivr.net/npm/@jinshub/url-fallback"></script>

Or make your own bundle with tools like webpack and rollup:

npm i @jinshub/url-fallback
import { addErrorListener } from '@jinshub/url-fallback'
addErrorListener({
	rules: [
		{
			url: 'your-cdn.com',
			fallbacks: [
				'your-backup-cdn.com',
				'your-static-server.com/change/path',
			],
		},
	]
})

Check if it works by opening the network panel in the Chrome Developer Tools and blocking a js or css resource, then refreshing the page.

Usage

Retry resources that matched the data-url 2 times:

<script data-url="your-website.com" data-fallbacks="your-website.com,your-website.com" data-url-fallback src="https://cdn.jsdelivr.net/npm/@jinshub/url-fallback"></script>

Retry resources that matched every fallback and replace it with other fallbacks if the data-url is empty:

<script data-fallbacks="your-website.com,your-backup-cdn.com,your-static-server.com" data-url-fallback src="https://cdn.jsdelivr.net/npm/@jinshub/url-fallback"></script>

Set multiple rules:

import { addErrorListener } from '@jinshub/url-fallback'
addErrorListener({
	rules: [
		{
			url: 'your-cdn.com',
			fallbacks: [
				'your-backup-cdn.com',
				'your-static-server.com/change/path',
			],
		},
		{
			fallbacks: [
				'your-img-cdn.com',
				'your-img-cdn1.com',
				'your-img-cdn2.com',
			],
		},
		{
			url: /your-cdn.com/,
			fallbacks: [
				'your-cdn.com',
				'your-cdn.com',
			],
		},
	]
})

For more details of addErrorListener, see the documentation

Documentation

For more details of public functions and types, see https://url-fallback.jinshub.com

License

MIT

About

A tiny piece of JavaScript code that allows websites to set fallback URLs for their JS, CSS and image resources.

Topics

Resources

License

Stars

Watchers

Forks