Skip to content
Combines. minifies, and serves CSS or Javascript files
PHP CSS JavaScript HTML ApacheConf
Find file
Latest commit 0b466c0 @glensc glensc fix debugdetector
current docs say append '&debug' to url, therefore 'debug' parameter has no value.
Failed to load latest commit information.
builder Fix displayed URLs in builder for HTTPS
docs Port last of min_unit_tests, remove references to it, add composer sc…
lib fix debugdetector
min_extras Port last of min_unit_tests, remove references to it, add composer sc…
tests add test for #500
.editorconfig do trim whitespace in editorconfig
.gitattributes Port last of min_unit_tests, remove references to it, add composer sc…
.gitignore ignore editor backups
.htaccess Collapse "min" into project root and get unit tests working.
.php_cs setup phpcs cache
.travis.yml travis: add memcache service
HISTORY.md Forgot to update HISTORY
LICENSE.txt moved unit_tests to min_unit_tests
README.md Update README.md
UPGRADING.txt Port last of min_unit_tests, remove references to it, add composer sc…
bootstrap.php Merge commit '5b6b891cc379be1b9c014a5bb070e5e2e792d64c' into 3.0
composer.json lower phpunit version to run with php 5.3 on travis
config-test.php Collapse "min" into project root and get unit tests working.
config.php A couple improvements
groupsConfig.php add test for #500
index.php translate legacy setting to option for source factory (AllowDir)
phpunit.xml port Minify_JS_ClosureCompiler test to phpunit
quick-test.css Collapse "min" into project root and get unit tests working.
quick-test.js Collapse "min" into project root and get unit tests working.
quick-test.less Collapse "min" into project root and get unit tests working.
quick-testinc.less Collapse "min" into project root and get unit tests working.
server-info.php use block comment for better (future) git annotate
utils.php Collapse "min" into project root and get unit tests working.

README.md

Welcome to Minify!

Minify is an HTTP server for JS and CSS assets. It compresses and combines files and serves it with appropriate headers, allowing conditional GET or long-Expires.

Before 7 requests
After 2 requests

The stats above are from a brief walkthrough which shows how easy it is to set up Minify on an existing site. It eliminated 5 HTTP requests and reduced JS/CSS bandwidth by 70%.

Relative URLs in CSS files are rewritten to compensate for being served from a different directory.

Wordpress User?

Consider instead using a dedicated WordPress plugin for more deep integration and simpler installation. E.g.:

Unfortunately we can't support the WordPress plugins here.

Installation

Installation requires PHP 5.3+, SSH access, and access to tools like git and composer or the privileges to install them.

cd /path/to/public_html
git clone https://github.com/mrclay/minify.git min
cd min
composer install --no-dev

What this does:

  1. Inside your DOCUMENT_ROOT directory, we clone this repo. Otherwise you may download and extract the zip file.
  2. We rename this directory min. E.g. You will have something like: /home/example/public_html/min
  3. We cd into it and run composer install to install the dependencies.

You can verify that it is working by visiting these two URLs:

* http://example.org/min/?f=min/quick-test.js
* http://example.org/min/?f=min/quick-test.css

If your server supports mod_rewrite, this URL should also work:

Configuration & Usage

See the user guide!

Minify also comes with a URI Builder application that can help you write URLs for use with Minify or configure groups of files.

See the cookbook for more advanced options for minification.

More docs are available.

Support

Google Group

Unit Testing

  1. Install dev deps via Composer: composer install
  2. composer test or phpunit

Warnings

  • Minify is designed for efficiency, but, for very high traffic sites, it will probably serve files slower than your HTTPd due to the CGI overhead of PHP. See the FAQ and CookBook for more info.
  • If you combine a lot of CSS, watch out for IE's 4096 selectors-per-file limit, affects IE 6 through 9.
  • Minify should work fine with files encoded in UTF-8 or other 8-bit encodings like ISO 8859/Windows-1252. By default Minify appends ";charset=utf-8" to the Content-Type headers it sends.

Acknowledgments

Minify was inspired by jscsscomp by Maxim Martynyuk and by the article Supercharged JavaScript by Patrick Hunlock.

The JSMin library used for JavaScript minification was originally written by Douglas Crockford and was ported to PHP by Ryan Grove specifically for use in Minify.

Something went wrong with that request. Please try again.