2015-08-04 21 views
7

Minify benim için iyi çalışıyor, ancak kaynak dosyalardan birini değiştirdikten sonra, beyaz boş bir sayfa aldım. Sayfayı yenilemek hiçbir şeyi değiştirmez. Önbelleğe alma olmadan yenileme (Strg + F5) sorunu çözer. Önbelleğe alma olmadan bir yenilemeden sonra, önbelleğe alma ile yenilenmeye geri dönebilir ve işe yarıyor.Minify, kaynak dosya değiştikten sonra beyaz sayfa döndürür

dev/dak/min.php/js = js & src% 5B0% 5D = ewOutlibs% 2Fjquery.min.js & src% 5B1% yazın:

URL im çağıran şöyle? 5D = ewOutlibs% 2Fcookie% 2Fjquery.cookie.js

min.php

<?php 
define('MINIFY_MIN_DIR', dirname(__FILE__)); 

// load config 
require MINIFY_MIN_DIR . '/config.php'; 

// autoload 
require $min_libPath . "/Minify/Loader.php"; 
Minify_Loader::register(); 

// caching 
Minify::setCache(
    isset($min_cachePath) ? $min_cachePath : '' 
    ,$min_cacheFileLocking 
); 

// get files to merge 
$aSrc = $_GET['src']; 

// replace shortened url with long url 
if (isset($_GET['type']) && $_GET['type'] === 'js') { 
    $aSrc = str_replace('ewOut', '//out/xxx/src/js/', $aSrc); 
} 

// build array 
$aSources = array(
    'files' => $aSrc, 
    'maxAge' => 31536000 // one year 
); 

try { 
    // compress, merge and serve new file 
    Minify::serve('Files', $aSources); 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 

ayrıntılı Üstbilgi:

Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:de-DE,de;q=0.8,en-US;q=0.6,en;q=0.4 
Cache-Control:max-age=0 
Connection:keep-alive 
Cookie:oxidadminprofile=0%40Standard%4010%401; oxidadminlanguage=de; sid_key=oxid; language=0; sid=crlrs8bqg21g6e33arsjq708k4; ZDEDebuggerPresent=php,phtml,php3 
Host:dev.teltec 
If-Modified-Since:Tue, 04 Aug 2015 12:35:59 GMT 
If-None-Match:"pub1438691759;gz" 
Upgrade-Insecure-Requests:1 
User-Agent:Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.125 Safari/537.36 

Tepki Başlığı:

HTTP/1.1 304 Not Modified 
Date: Tue, 04 Aug 2015 12:36:04 GMT 
Server: Apache/2.2.21 (Win32) mod_ssl/2.2.21 OpenSSL/0.9.8o mod_fcgid/2.3.9 
Connection: Keep-Alive 
Keep-Alive: timeout=5, max=99 
ETag: "pub1438691759;gz" 
Expires: Wed, 03 Aug 2016 12:36:04 GMT 
Cache-Control: max-age=31536000 
Vary: Accept-Encoding 
Set-Cookie: ZDEDebuggerPresent=php,phtml,php3; path=/ 
+0

error_log'unuzda ilginç bir şey var mı? Minify, dosyaların değişip değişmediğine karar vermek için dosya zamanlarını sunucu zamanıyla karşılaştırır. Dosyaları değiştirip değiştirmediğinizden emin olun. –

+0

'mtime' doğru şekilde güncellendi. Php_error.log'daki tek ilginç satır '' [10-Aug-2015 07:09:45 UTC] PHP Uyarı: strtotime() [function.strtotime]: Sistemin saat dilimi ayarlarına güvenmek güvenli değildir. Date.timezone ayarını veya date_default_timezone_set() işlevini kullanmak için * gereklidir *. Bu yöntemlerden herhangi birini kullandıysanız ve hala bu uyarıyı alıyorsanız, büyük olasılıkla saat dilimi tanımlayıcısını yanlış yazmış olursunuz. 358 numaralı hatta min \ lib \ HTTP \ ConditionalGet.php yerine '2.0/DST' için 'Europe/Paris' seçtik. – Chris

+0

Yerel olarak Avrupa/Berlin'i saat dilimi olarak tanımladım, şu anda çalışıyor gibi görünüyor. Ancak sorun, hali hazırda zaman dilimi olarak tanımlanan Europa/Berlin'e sahip olan evreleme sunucumuzda hala mevcut. Herhangi bir fikir? – Chris

cevap

1

getirmek için tarayıcı zorlamak sonunda bir sürüm numarası eklendi kadar bunun aynı kopyasını elde tutulur bir müşteriye sağlıyordu beslemeleri XML ile aynı problem vardı sahne sistemindeki tmp dizini yazılabilir değildi, bu nedenle Minify dosyaları önbelleğe almayı başaramadı ve beyaz bir sayfa döndürdü. Aptal bir hata. Yerel olarak iyi çalıştı, çünkü tmp dizini beklendiği gibi çalıştı.

1

sunucu ve/veya tarayıcı bunu önbelleğe olmasıdır. Kaynak güncellendiğinde önbelleği geçersiz kıldınız, ancak tarayıcı hala önbelleğe alındığını, başvurmaya çalıştıklarını, bir yenilemeye zorlanıncaya kadar boş kaldığını düşünür (ctrl + F5). Bunun bir yolu, "sürüm" numarasıyla benzersiz bir şekilde erişmek için kullandığınız URL'yi yapmaktır. Microsoft, otomatik olarak tarayıcıya "yeni" bir kopyasını getirmesini söyleyen demetleriyle (kaynak dosya değiştiyse karma değişikliklerle) kullanır.

Ben sadece her zaman yeni bir dosyayı

+0

Bu, Minify kütüphanesi tarafından otomatik olarak çözülmemelidir mi? ' – Chris

+0

Hayır. Bu, ona nasıl eriştiğinize bağlı olarak ve söyleyebileceğim kadarıyla, URL'nizin tarayıcı veya sunucu için yeterince benzersiz olmasının bir yolu yoktur. İçeriğin değiştiğini belirlemek için yeni bir kopyasını almak zorunda kalıyor. Bu, yeniden yüklemek için Ctrl + F5 tuşlarına basmanız gerektiğinde belirgindir. Kendinize bir iyilik yapın ve aynı url'ye rastgele bir sayı parametresi ekleyerek test edin ve bunun olup olmadığını görün veya benim teorimi kanıtlamamaya bakın. minify's minify, sizin için "önbellek busting" yapmaz :) – user3036342

+0

Minify uygulanan bir önbellek mekanizması vardır ve bildiğim kadarıyla, oldukça iyi çalışıyor. Tarayıcı her zaman önbelleğe alınmış dosyayı alır ve kaynak dosyalardan birini değiştirirsem, Minify minified dosyasının yeni bir sürümünü oluşturur.Bu nedenle, soru dosyalarındaki değişiklikleri algılar ve daha sonra yeni dosyayı doğru şekilde teslim etmelidir. Sorunumu doğrudan php.ini içinde bir zaman dilimini çözerek giderebilirim, ancak evreleme sunucumuzda bu ayarla ilgili sorun hala devam eder. Belki de 'min.php'imde bazı hatalar var? – Chris

İlgili konular