Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Compressing CSS and JS without mod_gzip and mod_deflate

I would like to compress the CSS and JS files on my server to minimise load times, problem.

My hosting is with Streamline.net (big mistake, never go there) who will not activate mod_gzip and mod_deflate due to security issues.

Does anyone have another way to compress these types of files (and image files too if poss) without going the way of mod_gzip and mod_deflate.

Answers would be hugely welcome.

like image 576
DanC Avatar asked Jan 23 '23 20:01

DanC


2 Answers

Yes, the answer is Minification.

Obviously, it will not compress as much as gzip or deflate. But it helps, and it is very easy to do with the right tools.

like image 182
Daniel Vassallo Avatar answered Jan 31 '23 19:01

Daniel Vassallo


You can run your files through a script which would gzip them for you and add appropriate expiration headers. Either set up an URL rewrite, or rewrite the URLs manually:

<script src="js/somescript.js"></script>

becomes

<script src="compress.php?somescript.js"></script>

and in compress.php, you can do something like

<?php
$file = 'js/' . basename($_SERVER['QUERY_STRING']);
if (file_exists($file)) {
    header ('Last-Modified: ' . date('r',filemtime($file));
    header ('Content-Type: text/javascript'); // otherwise PHP sends text/html, which could confuse browsers
    ob_start('ob_gzhandler');
    readfile($file);
} else {
    header('HTTP/1.1 404 Not Found');
}

Obviously this can be extended to also provide HTTP caching, and/or on-the-fly minification, further speeding up your visitors' browsing.

like image 43
Piskvor left the building Avatar answered Jan 31 '23 20:01

Piskvor left the building