如何使用Zend 2 Module AssetManager进行缓存?

时间:2013-12-17 08:39:14

标签: zend-framework2

我能够使用Zend 2 Module AssetManager(link)使用以下代码块缩小CSS文件,但是有缓存问题。如何配置它来缓存CSS文件?

我看到Firebug中的CSS文件的HTTP状态为200 OK。如果CSS文件被缓存,则应该是304 Not Modified。

请注意,Apache Web服务器对“public”目录以及目录内的任何内容都具有读写权限。

'asset_manager' => array(
    'resolver_configs' => array(
        'paths' => array(
            __DIR__ . '/../public'
        )
    ),
    'filters' => array(
        'css/a.css' => array(
            array(
                'filter' => 'UglifyCss'
            )
        )
    ),
    'caching' => array(
        'a.css' => array(
            'cache' => 'FilePath',
            'options' => array(
                'dir' => __DIR__ . '/../public'
            )
        )
    )
)

1 个答案:

答案 0 :(得分:2)

  

如果CSS文件被缓存,则应该是304 Not Modified。

不,如果您在配置中配置了浏览器缓存,那么它应该只有304。如果在AsseticModule中配置浏览器缓存,则只会将缩小和组合的css / js文件缓存在您的系统上,而不是在每个请求上生成。

将这样的内容放在公共文件夹下的.htaccess中。

# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------
<IfModule mod_expires.c>
    # Mod aktivieren
    ExpiresActive on

    # Standard Cache
    ExpiresDefault "access plus 1 minute"

    # Media
    ExpiresByType image/gif "access plus 1 minute"
    ExpiresByType image/jpeg "access plus 1 minute"
    ExpiresByType image/jpg "access plus 1 minute"
    ExpiresByType image/png "access plus 1 minute"
    ExpiresByType application/javascript "access plus 1 minute"
    ExpiresByType text/css "access plus 1 minute"
</IfModule>