https://github.com/raederdev/http-2-server-push-twig
Plugin for Craft CMS that provides a twig filter for generating a Link HTTP header
https://github.com/raederdev/http-2-server-push-twig
Last synced: about 1 month ago
JSON representation
Plugin for Craft CMS that provides a twig filter for generating a Link HTTP header
- Host: GitHub
- URL: https://github.com/raederdev/http-2-server-push-twig
- Owner: RaederDev
- License: mit
- Created: 2019-02-02T01:04:31.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2022-06-28T00:51:07.000Z (almost 4 years ago)
- Last Synced: 2025-01-12T11:45:59.643Z (over 1 year ago)
- Language: PHP
- Size: 49.8 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
README
# HTTP/2 Server Push Twig plugin for Craft CMS 4.x
This plugin provides a convenient way to utilize Server Push via a twig filter
## Requirements
This plugin requires Craft CMS 4.0.0 or later.
## Installation
To install the plugin, follow these instructions.
1. Open your terminal and go to your Craft project:
cd /path/to/project
2. Then tell Composer to load the plugin:
composer require raeder/craft-http2-server-push-twig
3. In the Control Panel, go to Settings → Plugins and click the “Install” button for HTTP/2 Server Push Twig.
## HTTP/2 Server Push Twig Overview
This plugin adds a twig filter that allows you to send a "Link" header to your web-server to enable HTTP/2 Server Push.
You will still have to configure your web-server to interpret the Link header and push the assets.
## Using HTTP/2 Server Push Twig
You can add any asset that should be included in the Link header like this:
```
```
CSS, JS and image files are supported out of the box. If you want to push another asset type you can pass the type like this:
```
```
A full list of supported types can be found here: https://fetch.spec.whatwg.org/#concept-request-destination
It's also possible to mark an asset as crossorigin:
```
```
After your site template was rendered by craft a hook will generate the Header.
If you're using Caddy you can find an example on how to configure your server in my blog-post: https://www.raeder.technology/post/practical-php-implementation-for-http-2-server-push
## Using HTTP/2 Server Push Twig modulepreload
Module preload headers are an experimental browser feature so tread carefully.
To push your module file use the h2module filter:
```
```
Please note that you must add 'type="module"' to your script tag, otherwise Google Chrome will not support import and export features.