Skip to content

[Encore] Encore.configureUrlLoader() documentation #9606

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 3 commits into from
Apr 19, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions frontend.rst
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@ Optimizing
* :doc:`Versioning (and the manifest.json file) </frontend/encore/versioning>`
* :doc:`Using A CDN </frontend/encore/cdn>`
* :doc:`Creating a "Shared" entry for re-used modules </frontend/encore/shared-entry>`
* :doc:`/frontend/encore/url-loader`

Guides
......
Expand Down
51 changes: 51 additions & 0 deletions frontend/encore/url-loader.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
Inlining files in CSS with Webpack URL Loader
=============================================

A simple technique to improve the performance of web applications is to reduce
the number of HTTP requests inlining small files as base64 encoded URLs in the
generated CSS files.

Webpack Encore provides this feature via Webpack's `URL Loader`_ plugin, but
it's disabled by default. First, add the URL loader to your project:

.. code-block:: terminal

$ yarn add --dev url-loader

Then enable it in your ``webpack.config.js``:

.. code-block:: javascript

// webpack.config.js
// ...

Encore
// ...
.configureUrlLoader({
fonts: { limit: 4096 },
images: { limit: 4096 }
})
;

The ``limit`` option defines the maximum size in bytes of the inlined files. In
the previous example, font and image files having a size below or equal to 4 KB
will be inlined and the rest of files will be processed as usual.

You can also use all the other options supported by the `URL Loader`_. If you
want to disable this loader for either images or fonts, remove the corresponding
key from the object that is passed to the ``configureUrlLoader()`` method:

.. code-block:: javascript

// webpack.config.js
// ...

Encore
// ...
.configureUrlLoader({
// 'fonts' is not defined, so only images will be inlined
images: { limit: 4096 }
})
;

.. _`URL loader`: https://github.com/webpack-contrib/url-loader