首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >谷歌PageSpeed的优化:缓存和压缩

谷歌PageSpeed的优化:缓存和压缩
EN

Stack Overflow用户
提问于 2016-04-05 11:30:03
回答 1查看 289关注 0票数 1

我有一个PHP,它自动压缩CSS文件。它的名字是minified.css.php

对所有感兴趣的人来说,情况就是这样:

代码语言:javascript
复制
<?php
    header('Content-type: text/css');
    ob_start("compress");

    function compress( $minify ) {
        // remove comments
        $minify = preg_replace( "/\/\*.+?\*\//", '', $minify );

        // remove tabs, spaces, newlines, etc.
        $minify = str_replace( array("\rn", "\r", "\n", "\t", '  ', '    ', '    '), '', $minify );

        // brackets
        $minify = str_replace( array(' {', '{ '), '{', $minify );
        $minify = str_replace( array(' }', '} '), '}', $minify );
        $minify = str_replace( array(' (', '( '), '(', $minify );
        $minify = str_replace( array(' )', ') '), ')', $minify );

        // (semi)colons
        $minify = str_replace( array(' ;', '; '), ';', $minify );
        $minify = str_replace( array(' :', ': '), ':', $minify );

        return $minify;
    }

    /* css files for combining */
    include(getcwd().'/style.css');

    ob_end_flush();

但谷歌希望它能被压缩,并增加一个到期日期。我.htaccess中的相关部分如下所示:

代码语言:javascript
复制
<IfModule mod_deflate.c>
    Addtype font/truetype .ttf

    AddOutputFilterByType DEFLATE text/plain
    AddOutputFilterByType DEFLATE text/html
    AddOutputFilterByType DEFLATE text/xml
    AddOutputFilterByType DEFLATE text/css
    AddOutputFilterByType DEFLATE application/xml
    AddOutputFilterByType DEFLATE application/xhtml+xml
    AddOutputFilterByType DEFLATE application/rss+xml
    AddOutputFilterByType DEFLATE application/javascript
    AddOutputFilterByType DEFLATE application/x-javascript
    AddOutputFilterByType DEFLATE font/truetype
</IfModule>

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 0 month"

    ExpiresByType text/css "access plus 1 month"

    ExpiresByType application/json "access plus 0 seconds"
    ExpiresByType application/xml "access plus 0 seconds"
    ExpiresByType text/xml "access plus 0 seconds"

    ExpiresByType image/x-icon "access plus 1 week"

    ExpiresByType text/x-component "access plus 1 month"

    ExpiresByType text/html "access plus 0 seconds"

    ExpiresByType application/javascript "access plus 1 month"

    ExpiresByType application/x-web-app-manifest+json "access plus 0 seconds"
    ExpiresByType text/cache-manifest "access plus 0 seconds"

    ExpiresByType audio/ogg "access plus 1 month"
    ExpiresByType image/gif "access plus 1 month"
    ExpiresByType image/jpeg "access plus 1 month"
    ExpiresByType image/png "access plus 1 month"
    ExpiresByType video/mp4 "access plus 1 month"
    ExpiresByType video/ogg "access plus 1 month"
    ExpiresByType video/webm "access plus 1 month"

    ExpiresByType application/atom+xml "access plus 1 hour"
    ExpiresByType application/rss+xml "access plus 1 hour"

    ExpiresByType application/font-woff "access plus 1 year"
    ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
    ExpiresByType application/x-font-ttf "access plus 1 month"
    ExpiresByType font/opentype "access plus 1 month"
    ExpiresByType image/svg+xml "access plus 1 month"
</IfModule>

要使minified.css.php可缓存+到期日期,必须添加哪些行?

编辑:使用minified.css.php的头来启用缓存。

代码语言:javascript
复制
header("Cache-Control: max-age=29030400");
header("Cache-Control: public", false); 

但是仍然存在压缩问题.

EN

回答 1

Stack Overflow用户

发布于 2016-04-05 11:40:17

它是一个php文件,只需为php添加MIME类型:

代码语言:javascript
复制
<IfModule mod_deflate.c>
  AddOutputFilterByType DEFLATE  application/x-httpd-php
</IfModule>

<IfModule mod_expires.c>
 ExpiresByType application/x-httpd-php "access plus 1 month"
</IfModule>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36425139

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档