Agregar encabezados de Expires

6 minutos de lectura

avatar de usuario
sami

Add Expires headers
There are 21 static components without a far-future expiration date.

    http://static.doers.lk/examples-offline.css
    http://static.doers.lk/kendo.common.min.css
    http://static.doers.lk/kendo.default.min.css
    http://static.doers.lk/style.css
    http://static.doers.lk/jquery.min.js
    http://static.doers.lk/kendo.web.min.js
    http://static.doers.lk/console.js
    http://static.doers.lk/sprite.png
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    https://fbexternal-a.akamaihd.net/safe_image.php?...
    http://static.doers.lk/favicon.PNG

Al probar el sitio usando yahoo YSLOW, dice el mensaje anterior. Así que no sé cómo agregar encabezados de caducidad. ¿Cualquier ayuda sería apreciada?

  • espero que haya documentación en su sitio

    – ROCKING RhO

    20 de diciembre de 2012 a las 12:53

  • Google php Add Expires headers

    – Peka

    20 de diciembre de 2012 a las 12:53

  • asumo que static.doers.lk es su propio sitio web?

    – Jacobo

    20 de diciembre de 2012 a las 12:56

  • sí, utilicé ese subdominio sin cookies para establecer contenido estático

    – sami

    20 de diciembre de 2012 a las 12:57


  • Aquí hay una explicación para el mensaje YSlow.

    – DOK

    15/10/2013 a las 22:08

avatar de usuario
pixelista

La forma más fácil de agregar estos encabezados es un .htaccess archivo que agrega alguna configuración a su servidor. Si los activos están alojados en un servidor que no controla, no hay nada que pueda hacer al respecto.

Tenga en cuenta que algunos proveedores de alojamiento no le permitirán utilizar .htaccess archivos, así que verifique sus términos si no parece funcionar.

El proyecto HTML5Boilerplate tiene una excelente .htaccess archivo que cubre los ajustes necesarios. Véase la parte pertinente del expediente en su Repositorio Github

Estas son las partes importantes

# ----------------------------------------------------------------------
# Expires headers (for better cache control)
# ----------------------------------------------------------------------

# These are pretty far-future expires headers.
# They assume you control versioning with filename-based cache busting
# Additionally, consider that outdated proxies may miscache
# www.stevesouders.com/blog/2008/08/23/revving-filenames-dont-use-querystring/

# If you don't use filenames to version, lower the CSS and JS to something like
# "access plus 1 week".

<IfModule mod_expires.c>
  ExpiresActive on

# Your document html
  ExpiresByType text/html "access plus 0 seconds"

# Media: images, video, audio
  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"

# CSS and JavaScript
  ExpiresByType application/javascript "access plus 1 year"
  ExpiresByType text/css "access plus 1 year"
</IfModule>

Ellos tienen documentado lo que hace ese archivolo más importante es que debe cambiar el nombre de sus archivos CSS y Javascript cada vez que cambien, porque los navegadores de sus visitantes no volverán a revisarlos durante un año, una vez que se almacenan en caché.

  • No, solo la sección “Caduca encabezados”. O incluso solo la parte que pegué en mi respuesta. Por favor, asegúrese de entender completamente lo que hace, especialmente por qué reventar caché es necesario una vez que usas esto.

    – pixelistik

    20 de diciembre de 2012 a las 13:05

  • Tengo otra pregunta. ¿Me puede dar una respuesta?

    – sami

    20 de diciembre de 2012 a las 13:15

  • Notarás, sin embargo, que el estándar de HTML5 .htaccess script sugiere que es preferible poner esta información en httpd.conf debido al impacto en el rendimiento de Apache de .htaccess archivos

    – Nick

    5 de octubre de 2013 a las 9:19


  • Sin embargo, Google PageSpeed ​​Insights aún afirma que solo tengo 10 minutos de vencimiento en mis recursos. Estoy usando H5BP .htaccess junto con GitHub Pages.

    – kleinfreund

    10 de noviembre de 2014 a las 19:58

  • Su servidor debe admitir archivos .htaccess. Las páginas de Github no: GitHub Pages does not support customer server configuration files such as .htaccess help.github.com/articles/redirects-on-github-pages

    – pixelistik

    11 de noviembre de 2014 a las 22:27

prueba esta solución y me funciona bien

## EXPIRES CACHING ##
<IfModule mod_expires.c>
ExpiresActive On
ExpiresByType image/jpg "access 1 year"
ExpiresByType image/jpeg "access 1 year"
ExpiresByType image/gif "access 1 year"
ExpiresByType image/png "access 1 year"
ExpiresByType text/css "access 1 month"
ExpiresByType text/html "access 1 month"
ExpiresByType application/pdf "access 1 month"
ExpiresByType text/x-javascript "access 1 month"
ExpiresByType text/css "access plus 1 year"
ExpiresByType application/x-shockwave-flash "access 1 month"
ExpiresByType image/x-icon "access 1 year"
ExpiresDefault "access 1 month"
</IfModule>

<IfModule mod_headers.c>
  <FilesMatch "\.(js|css|xml|gz)$">
    Header append Vary: Accept-Encoding
  </FilesMatch>
</IfModule>

<ifModule mod_gzip.c>
mod_gzip_on Yes
mod_gzip_dechunk Yes
mod_gzip_item_include file .(html?|txt|css|js|php|pl)$
mod_gzip_item_include handler ^cgi-script$
mod_gzip_item_include mime ^text/.*
mod_gzip_item_include mime ^application/x-javascript.*
mod_gzip_item_exclude mime ^image/.*
mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.*
</ifModule>

<IfModule mod_deflate.c>
SetOutputFilter DEFLATE
AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml text/x-js text/js 
</IfModule>

## EXPIRES CACHING ##

Puede agregarlos en su archivo htaccess o configuración de vhost.

Mira aquí : http://httpd.apache.org/docs/2.2/mod/mod_expires.html

Pero a menos que usted sea el propietario de esos dominios… están bajo su control.

avatar de usuario
usuario8031347

<IfModule mod_expires.c>
    # Enable expirations
    ExpiresActive On 

    # Default directive
    ExpiresDefault "access plus 1 month"

    # My favicon
    ExpiresByType image/x-icon "access plus 1 year"

    # Images
    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"

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

    # Javascript
    ExpiresByType application/javascript "access plus 1 year"
</IfModule>

avatar de usuario
Mohammad Shadman

En ASP.NET hay un objeto similar, puede usar Caching Portions en WebFormsUserControls para almacenar en caché los objetos de una página durante un período de tiempo y ahorrar recursos del servidor. Esto también se conoce como almacenamiento en caché de fragmentos.
Si incluye este código en la parte superior de su control de usuario, una versión del control se almacena en la memoria caché de salida durante 150 segundos. Puede crear su propio control que contendría un encabezado de caducidad para un recurso específico que desee.

<%@ OutputCache Duration="150" VaryByParam="None" %>

Este artículo lo explica completamente:
Almacenamiento en caché de partes de una página ASP.NET

¿Ha sido útil esta solución?