Merge pull request #3072 from tinect/deliverCSSandJSfiles
deliver CSS and JS as external request
This commit is contained in:
		
						commit
						de8cfbde03
					
				@ -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