mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2024-12-29 02:54:55 +02:00
deliver CSS and JS as external request
This commit is contained in:
parent
31eb169152
commit
cc1bf5d426
@ -32,7 +32,7 @@
|
||||
gzip_buffers 16 8k;
|
||||
gzip_http_version 1.1;
|
||||
gzip_min_length 256;
|
||||
gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
|
||||
gzip_types text/plain text/css application/json application/javascript application/x-javascript text/xml application/xml application/xml+rss text/javascript application/vnd.ms-fontobject application/x-font-ttf font/opentype image/svg+xml image/x-icon;
|
||||
|
||||
location ~ ^/(fonts|js|css|img)/ {
|
||||
expires max;
|
||||
@ -205,3 +205,7 @@
|
||||
location @awaitingupstream {
|
||||
rewrite ^(.*)$ /_status.502.html break;
|
||||
}
|
||||
|
||||
location ~ ^/cache/(.*)$ {
|
||||
try_files $uri $uri/ /resource.php?file=$1;
|
||||
}
|
||||
|
@ -3,15 +3,16 @@ require_once $_SERVER['DOCUMENT_ROOT'] . '/modals/footer.php';
|
||||
logger();
|
||||
?>
|
||||
<div style="margin-bottom: 100px;"></div>
|
||||
<script type='text/javascript'><?php
|
||||
$JSPath = '/tmp/' . $js_minifier->getDataHash() . '.js';
|
||||
if(file_exists($JSPath)) {
|
||||
echo file_get_contents($JSPath);
|
||||
} else {
|
||||
echo $js_minifier->minify($JSPath);
|
||||
cleanupJS($js_minifier->getDataHash());
|
||||
}
|
||||
?></script>
|
||||
|
||||
<?php
|
||||
$hash = $js_minifier->getDataHash();
|
||||
$JSPath = '/tmp/' . $hash . '.js';
|
||||
if(!file_exists($JSPath)) {
|
||||
$js_minifier->minify($JSPath);
|
||||
cleanupJS($hash);
|
||||
}
|
||||
?>
|
||||
<script src="/cache/<?=basename($JSPath)?>"></script>
|
||||
<script>
|
||||
<?php
|
||||
$lang_footer = json_encode($lang['footer']);
|
||||
|
@ -29,16 +29,15 @@
|
||||
if ($_SERVER['REQUEST_URI'] == '/') {
|
||||
$css_minifier->add('/web/css/site/index.css');
|
||||
}
|
||||
|
||||
$hash = $css_minifier->getDataHash();
|
||||
$CSSPath = '/tmp/' . $hash . '.css';
|
||||
if(!file_exists($CSSPath)) {
|
||||
$css_minifier->minify($CSSPath);
|
||||
cleanupCSS($hash);
|
||||
}
|
||||
?>
|
||||
<style><?php
|
||||
$CSSPath = '/tmp/' . $css_minifier->getDataHash() . '.css';
|
||||
if(file_exists($CSSPath)) {
|
||||
echo file_get_contents($CSSPath);
|
||||
} else {
|
||||
echo $css_minifier->minify($CSSPath);
|
||||
cleanupCSS($css_minifier->getDataHash());
|
||||
}
|
||||
?></style>
|
||||
<link rel="stylesheet" href="/cache/<?=basename($CSSPath)?>">
|
||||
<?php if (strtolower(trim($DEFAULT_THEME)) != "lumen"): ?>
|
||||
<link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/bootswatch/3.3.7/<?= strtolower(trim($DEFAULT_THEME)); ?>/bootstrap.min.css">
|
||||
<?php endif; ?>
|
||||
|
28
data/web/resource.php
Normal file
28
data/web/resource.php
Normal file
@ -0,0 +1,28 @@
|
||||
<?php
|
||||
|
||||
$pathinfo = pathinfo($_GET['file']);
|
||||
$extension = strtolower($pathinfo['extension']);
|
||||
|
||||
$filepath = '/tmp/' . $pathinfo['basename'];
|
||||
$content = '';
|
||||
|
||||
if (file_exists($filepath)) {
|
||||
$secondsToCache = 31536000;
|
||||
$expires = gmdate('D, d M Y H:i:s', time() + $secondsToCache) . ' GMT';
|
||||
|
||||
if ($extension === 'js') {
|
||||
header('Content-Type: application/javascript');
|
||||
} elseif ($extension === 'css') {
|
||||
header('Content-Type: text/css');
|
||||
} else {
|
||||
//currently just css and js should be supported!
|
||||
exit();
|
||||
}
|
||||
|
||||
header("Expires: $expires");
|
||||
header('Pragma: cache');
|
||||
header('Cache-Control: max-age=' . $secondsToCache);
|
||||
$content = file_get_contents($filepath);
|
||||
}
|
||||
|
||||
echo $content;
|
Loading…
Reference in New Issue
Block a user