Specifing Expiration Date For Static File's Caches

前端 未结 5 970
春和景丽
春和景丽 2021-01-31 00:33

When i test my website for SpeedTest i\'m seeing a lot of expiration not specified error.You can see at this page .

I added this code to my .htaccess f

相关标签:
5条回答
  • 2021-01-31 00:34

    You can use mod_headers to do the trick:

    <FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
      Header set Cache-Control "max-age=290304000, public"
    </FilesMatch>
    

    Or you can use mod_expires:

    ExpiresByType text/html "access plus 1 month 15 days 2 hours"
    ExpiresByType image/gif "modification plus 5 hours 3 minutes"
    
    0 讨论(0)
  • 2021-01-31 00:43

    Maybe you didn't load mod_expires, so the entire stanza is a no-op. Or, AllowOverride is None and your .htaccess file is not processed.

    0 讨论(0)
  • 2021-01-31 00:45

    i like the html5boilerplate way :

    <IfModule mod_expires.c>
      ExpiresActive on
    
    # Perhaps better to whitelist expires rules? Perhaps.
      ExpiresDefault                          "access plus 1 month"
    
    # cache.appcache needs re-requests in FF 3.6 (thx Remy ~Introducing HTML5)
      ExpiresByType text/cache-manifest       "access plus 0 seconds"
    
    # your document html 
      ExpiresByType text/html                 "access plus 0 seconds"
    
    # data
      ExpiresByType text/xml                  "access plus 0 seconds"
      ExpiresByType application/xml           "access plus 0 seconds"
      ExpiresByType application/json          "access plus 0 seconds"
    
    # rss feed
      ExpiresByType application/rss+xml       "access plus 1 hour"
    
    # favicon (cannot be renamed)
      ExpiresByType image/x-icon              "access plus 1 week" 
    
    # media: images, video, audio
      ExpiresByType image/gif                 "access plus 1 month"
      ExpiresByType image/png                 "access plus 1 month"
      ExpiresByType image/jpg                 "access plus 1 month"
      ExpiresByType image/jpeg                "access plus 1 month"
      ExpiresByType video/ogg                 "access plus 1 month"
      ExpiresByType audio/ogg                 "access plus 1 month"
      ExpiresByType video/mp4                 "access plus 1 month"
      ExpiresByType video/webm                "access plus 1 month"
    
    # htc files  (css3pie)
      ExpiresByType text/x-component          "access plus 1 month"
    
    # webfonts
      ExpiresByType font/truetype             "access plus 1 month"
      ExpiresByType font/opentype             "access plus 1 month"
      ExpiresByType application/x-font-woff   "access plus 1 month"
      ExpiresByType image/svg+xml             "access plus 1 month"
      ExpiresByType application/vnd.ms-fontobject "access plus 1 month"
    
    # css and javascript
      ExpiresByType text/css                  "access plus 2 months"
      ExpiresByType application/javascript    "access plus 2 months"
      ExpiresByType text/javascript           "access plus 2 months"
    
      <IfModule mod_headers.c>
        Header append Cache-Control "public"
      </IfModule>
    
    </IfModule>
    

    Hope this can be useful to you. Source: https://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess

    0 讨论(0)
  • 2021-01-31 00:46

    I see you have PHP installed (reference wordpress), so we'll try to diagnose your problem:

    1. restart your apache web server. If you own the apache server (command line access), you can do it like such.
    2. create a phpinfo page. This will allow you to view the apache modules installed. Check for the mod_expires.c module your looking to use (should be able to do a CTL-F (find) request in your browser for mod_expires). If you find it - GOOD! If not, you need to install mod_expires in your apache server. If you own your apache server, you can search on for how to install modules for your specific operating system. If not, you can check with your hosting provider on how to get this module installed. Once installed, proceed.
    3. modify your http.conf entry to include "plus" in your expression
    4. restart Apache again
    5. Test =)
    0 讨论(0)
  • 2021-01-31 00:56

    You just need to add:

    ExpiresByType application/javascript "access plus 1 year"
    
    0 讨论(0)
提交回复
热议问题