Send the file or send a 307 redirect.

Paramètres

$filepath: filename

$uri: css or js

1 call to advagg_missing_send_file()
advagg_missing_regenerate dans includes/missing.inc
regenerates a missing css file.

Fichier

includes/missing.inc, line 131

Code

function advagg_missing_send_file($filepath, $uri, $type) {
    if (!headers_sent()) {
        // Code from file_download.
        if (file_exists($filepath)) {
            $headers = module_invoke_all('file_download', $filepath, $type);
            if ($key = array_search(-1, $headers)) {
                unset($headers[$key]);
            }
            // Remove all previously set Cache-Control headers, because we're going to
            // override it. Since multiple Cache-Control headers might have been set,
            // simply setting a new, overriding header isn't enough: that would only
            // override the *last* Cache-Control header. Yay for PHP!
            foreach ($headers as $key => $header) {
                if (strpos($header, 'Cache-Control:') === 0) {
                    unset($headers[$key]);
                }
                elseif (strpos($header, 'ETag:') === 0) {
                    unset($headers[$key]);
                }
            }
            if (function_exists('header_remove')) {
                header_remove('Cache-Control');
                header_remove('ETag');
            }
            else {
                drupal_add_http_header('Cache-Control', '');
                drupal_add_http_header('Cache-Control', '');
                drupal_add_http_header('ETag', '');
                drupal_add_http_header('ETag', '');
            }
            // Set a far future Cache-Control header (480 weeks), which prevents
            // intermediate caches from transforming the data and allows any
            // intermediate cache to cache it, since it's marked as a public resource.
            $headers[] = "Cache-Control: max-age=290304000, no-transform, public";
            if (count($headers)) {
                advagg_missing_file_transfer($filepath, $headers);
            }
        }
        // advagg_missing_file_transfer didn't run/send data, redirect via header.
        header('Location: ' . $uri, TRUE, 307);
        usleep(250000);
        // Sleep for 250ms
    }
}