Autor Zpráva
okonorka_harfi_sum
Profil *
Zdravím,

řeším teď jeden problém. Generuji style.css přes PHP ( tedy je to style.php ) .
V souboru style.php se sjednocují všechny styly z /sys/css/ ..(je jich asi 50).

Pokud najedu přímo na script, tedy /sys/style.php , tak se mi krásně zobrazí jakoby "css soubor".
Ovšem pokud ho použiji jako

<link rel="stylesheet" type="text/css" href="/sys/style.php" />
tak nenačte a prohlížeč hlásí

Failed to load resource: the server responded with a status of 500 (Internal Server Error)

.htaccess vypadá nějak takto

RewriteEngine On
RewriteBase /

RewriteRule ^(.*)/style.css$ $1/style.php [L,QSA]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-


style.php potom nějak takto - ten mi jak jsem psal normálně funguje..


$genEtag = md5_file($_SERVER['SCRIPT_FILENAME']);


header("Etag: ".$genEtag); 
header("Pragma: public");
header("Cache-Control: public ");
header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 86400 ) . ' GMT');
header("Content-type: text/javascript");
header('Vary: Accept-Encoding')

$content = ..--naloadovani css--...

if( $browser->isBrowser(Browser::BROWSER_IE) && $browser->getVersion() == 6 ) {
    ob_start();
}else{
    ob_start("ob_gzhandler");
}
echo $content;
ob_end_flush();
Davex
Profil
okonorka_harfi_sum:
vypadá nějak takto
Nemá cenu psát sem od oka kód, protože je v něm hned několik chyb. Například .htaccess není kompletní, což způsobí chybu 500 a Content-Type je pro CSS chybný.

Nehledě na to, že stačí soubor sestavit jenom jednou a zbytek nechat na webserveru.
Martin2
Profil *
okonorka_harfi_sum:
Snažíš se o nějaké prudce optimalizované načítání prostředků a povedlo se ti rozbít skoro všechny mechanismy, které prohlížeč používá pro kešování a negotiation.

Namátkou nesmyslný E-Tag, který stejně nikde nekontroluješ. Hodnota Vary, podle které stejně nerozhoduješ o ničem. Komprese jen na základě absence IE6.

Styly sjednoť jednorázově ještě před publikováním a nech ve statickém souboru.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0