JavaScript
- 7 ответов
- 0 вопросов
9
Вклад в тег
function get_previoussibling(n)
{
x=n.previousSibling;
while (x.nodeType!=1)
{
x=x.previousSibling;
}
return x;
}
есть ли вариант какой то не строковый?
location ~* ^/(.*)/styles/css/compiled/compile.css$ {
set $nocache 'no';
set $ccontrol "max-age=31536000";
if ($arg_dev = 'yes'){
set $nocache 'yes';
set $ccontrol "no-store,no-cache,must-revalidate";
}
add_header Cache-Control $ccontrol;
if (!-f /home/dev/dev.test/$1/styles/css/compiled/compile.css){
set $nocache 'yes';
}
if ($nocache = 'yes'){
rewrite ^(.*)(styles/css/compiled/compile.css)$ $1styles/css/virtual/compile.css;
}
access_log off;
log_not_found off;
error_log off;
}
location ~* ^/(.*)/styles/css/virtual/compile.css$ {
access_log off;
log_not_found off;
error_log off;
proxy_pass http://unix:/var/run/scss.sock;
proxy_store off;
}
server {
listen unix:/var/run/scss.sock;
access_log off;
error_log /var/log/nginx/less.error.log;
root /home/dev/dev.test;
location ~* ^/(.*)/styles/css/compiled/compile.css$ {
alias /home/dev/dev.test/$1/styles/css/compile.css;
access_log off;
log_not_found off;
error_log off;
expires max;
}
#обратите внимание на путь /virtual/ которого нету. Именно на него "попадаем" из внешнего конфига в случае промаха по кэшу
location ~* ^/(.*)/styles/css/virtual/compile.css$ {
fastcgi_pass backend_m;
# это ваш php файл
fastcgi_index /scsscompiler/csscompile.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/scsscompiler/csscompile.php;
fastcgi_param CSS_PATH $1;
fastcgi_param CONTENT_TYPE text/css;
}
location ~ /\.ht {
deny all;
}
}
<?php
$pathroot = $_SERVER['DOCUMENT_ROOT'].'/'.$_SERVER['CSS_PATH'];
if (is_dir($pathroot)){
header('Content-Type: text/css');
$files = [
//'../../styles/css/dropdown-enc.css'
];
$sass = new Sass();
$x = $sass->compile_file('../../styles/scss/_out.scss');
foreach($files as $file){
if (file_exists($file)) $x .= PHP_EOL.file_get_contents($file);
}
$file = $pathroot.'/styles/css/compiled/compile.css';
$dir = $pathroot.'/styles/css/compiled';
if (!is_dir($dir)) mkdir($dir,0755,true);
file_put_contents($file,$x);
$time = filemtime($file);
$etag = dechex($time).'-'.dechex(filesize($file));
header('ETag:"'.$etag.'"');
header('Last-Modified:'.gmdate('D, d M Y H:i:s', $time).' GMT');
echo $x;
} else {
header('Content-Type: text/css');
echo '/* SASS CSS ERROR: no dir at: ',$pathroot,' */';
}
?>