2014-10-28 145 views
0

我在.htaccess文件中有这个。利用.htaccess中的浏览器缓存不起作用

<IfModule mod_expires.c> 

    ExpiresActive on 
    ExpiresDefault          "access plus 1 month" 

    # CSS 
    ExpiresByType text/css        "access plus 1 month” 

    # Data interchange 
    ExpiresByType application/atom+xml     "access plus 1 hour" 
    ExpiresByType application/rdf+xml     "access plus 1 hour" 
    ExpiresByType application/rss+xml     "access plus 1 hour" 

    ExpiresByType application/json      "access plus 0 seconds" 
    ExpiresByType application/ld+json     "access plus 0 seconds" 
    ExpiresByType application/schema+json    "access plus 0 seconds" 
    ExpiresByType application/vnd.geo+json    "access plus 0 seconds" 
    ExpiresByType application/xml      "access plus 0 seconds" 
    ExpiresByType text/xml        "access plus 0 seconds" 

    # Favicon (cannot be renamed!) and cursor images 
    ExpiresByType image/vnd.microsoft.icon    "access plus 1 week" 
    ExpiresByType image/x-icon       "access plus 1 week" 

    # HTML 
    ExpiresByType text/html        "access plus 2 day” 

    # JavaScript 
    ExpiresByType application/javascript    "access plus 1 month” 
    ExpiresByType application/x-javascript    "access plus 1 year" 
    ExpiresByType text/javascript      "access plus 1 year" 

    # Manifest files 
    ExpiresByType application/manifest+json    "access plus 1 year" 

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

    # Media files 
    ExpiresByType audio/ogg        "access plus 1 month" 
    ExpiresByType image/bmp        "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 image/svg+xml       "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" 

    # Web fonts 

    # Embedded OpenType (EOT) 
    ExpiresByType application/vnd.ms-fontobject   "access plus 1 month" 
    ExpiresByType font/eot        "access plus 1 month" 

    # OpenType 
    ExpiresByType font/opentype       "access plus 1 month" 

    # TrueType 
    ExpiresByType application/x-font-ttf    "access plus 1 month" 

    # Web Open Font Format (WOFF) 1.0 
    ExpiresByType application/font-woff     "access plus 1 month" 
    ExpiresByType application/x-font-woff    "access plus 1 month" 
    ExpiresByType font/woff        "access plus 1 month" 

    # Web Open Font Format (WOFF) 2.0 
    ExpiresByType application/font-woff2    "access plus 1 month" 

    # Other 
    ExpiresByType text/x-cross-domain-policy   "access plus 1 week" 

</IfModule> 

但在gtmetrix还在说: The following cacheable resources have a short freshness lifetime. Specify an expiration at least one week in the future for the following resources

+1

什么是以下资源?只是CSS,一切?当你打开浏览器中的页面与开发人员工具的“网络”选项卡打开,该怎么办文件的Repsonse的Headers部分说? – 2014-10-28 14:38:06

+0

是否gtmetrix说哪些文件没有被缓存? [Google Page Speed](https://developers.google.com/speed/pagespeed/insights/)列出了没有/缓存太少的文件。 – Reeno 2014-10-28 15:05:35

+0

尝试谷歌页面速度,它给出了相同的结果。利用浏览器缓存jpg,css,js文件 – Mareks 2014-10-28 15:14:47

回答

0

您的htaccess文件的语法是否正确。请确保您

  • 发生在正确的文件夹中的htaccess文件(即项目的根文件夹)
  • 已安装并启用了模块指定mod_expires(见how to check if mod_expires is enabled
  • 设定所需的到期时间你所有的资源(哪些资源被“下列资源”所占用?你已经为某些资源设置了过期标题长达一年)
+0

感谢您的快速回复,我在终端中试过这个命令:apachectl -M mime和头文件都是共享的,不要在任何地方看到过期模块 – Mareks 2014-10-28 15:01:06

+0

编译模块: core.c mod_so .c http_core.c prefork.c – Mareks 2014-10-28 15:51:56

+0

如果您的列表中没有expires_module,则不会安装/启用它。要求您的提供商安装/启用它。而且,正如Reeno所说,你必须将你的.htaccess文件放到你的域指向的文件夹中。 – 2014-10-31 23:48:34