代码之家  ›  专栏  ›  技术社区  ›  HandiworkNYC.com

为特定图像添加过期标题

  •  7
  • HandiworkNYC.com  · 技术社区  · 15 年前

    我看过的所有expires headers文章或多或少都给出了以下解决方案:

    ExpiresByType image/gif A2592000
    ExpiresByType image/png A2592000
    ExpiresByType image/jpg A2592000
    ExpiresByType image/jpeg A2592000
    

    但这对我来说没有意义,因为我知道哪些图像会更改,哪些不会更改,所以我希望能够将特定的过期日期添加到特定的图像文件中。我该怎么办?

    2 回复  |  直到 7 年前
        1
  •  9
  •   a'r    15 年前

    你可以用 FilesMatch ,例如

    <FilesMatch "\.(js|css)$">
      ExpiresActive on 
      ExpiresDefault "access plus 1 month"
    </FilesMatch>
    

    或者对于某些特定文件:

    <FilesMatch "^(example.js|sample.css)$">
      ExpiresActive on 
      ExpiresDefault "access plus 1 month"
    </FilesMatch>
    
        2
  •  1
  •   Nux    7 年前

    注意使用 ExpiresDefault 对于特定的文件,如果您已经使用 ExpiresByType . 你需要使用 按类型过期 再一次。

    所以这行不通( service-worker.js 仍将有+1年到期):

    <IfModule mod_expires.c>
        ExpiresActive on
        ExpiresDefault                                      "access plus 1 month"
        ExpiresByType application/javascript                "access plus 1 year"
        <FilesMatch "^(service-worker.js)$">
            ExpiresDefault                                  "access plus 0 seconds"
        </FilesMatch>
    </IfModule>
    

    但这会奏效的( 服务工作者.js 将有+0秒到期时间):

    <IfModule mod_expires.c>
        ExpiresActive on
        ExpiresDefault                                      "access plus 1 month"
        ExpiresByType application/javascript                "access plus 1 year"
        <FilesMatch "^(service-worker.js)$">
            ExpiresByType application/javascript            "access plus 0 seconds"
        </FilesMatch>
    </IfModule>
    

    你也可以用 Header unset Expires . 这将删除 Expires 不管上面设置了什么。您还应该修改(或删除) Cache-Control 标题。看来 mod_expires 两者都设置。

        <FilesMatch "^(service-worker.js)$">
            Header unset Expires
            Header set Cache-Control "max-age=0"
        </FilesMatch>