Doymer Consultores

  • Increase font size
  • Default font size
  • Decrease font size
Inicio

Staticizer. Documentación

Imprimir PDF

Configuración

Configurar Staticizer es sencillo. Después de instalar la última versión del plugin vamos al administrador de plugins y lo buscamos. Para simplificar su localización puedes filtrar por nombre poniendo algo como 'stat' en la casilla del filtro. Cuando lo hayas localizado seleccionalo para abir la pantalla principal de configuración:

plugin_config_thmb

En la parte de la derecha tenemos los siguientes parámetros:

Nombre del Dominio Estático

Este será el nombre que sustituirá al dominio desde donde estamos generando la página. Puede incluir el esquema o no. Si incluyes el esquema (http://, https://, ftp://, etc) entonces este valor sustituirá al esquema actual de la página. Si no quieres que esto ocurra pon simplemente un dominio de destino como static.doymer.com sin esquema. Si quieres saber más sobre servir contenidos estáticos puedes buscar en la red o leer este artículo.

[Sub]Directorio del dominio actual

Si tu sitio no está asociado a la raíz del servidor donde tienes la página entonces tus URLs podrían ser de la forma http://www.misitio.com/carpeta/index.php. Si esto no ocurre igual en tu sitio estático la simple sustitución del host daría como resultado http://static.misitio.com/carpeta/index.php que podría ser una ruta no válida. Así que si escribes en este campo 'carpeta' esa palabra será eliminada de tu ruta si es la que aparece en primer lugar de la misma quedando la URL final como http://static.misitio.com/index.php.

Puedes considerar este campo como un elemento SUSTRACTIVO de la ruta final. Ten en cuenta que si 'carpeta' aparece en cualquier otro sitio de la ruta no será eliminada. Así puedes tener rutas como images/carpeta/imagen.png sin problemas.

Incluir hojas de estilo

Como su nombre indica selecciona si quieres cambiar las referencias a los ficheros de hoja de estilo.

Incluir scripts

Igualmente selecciona si quieres cambiar las referencias a los ficheros de javascript.

Incluir imagenes

En este caso selecciona si quieres cambiar las referencias a las imagenes de tu sitio.


Si no indicas un nombre de dominio estático o no seleccionas ninguna de estas tres últimas opciones el plugin no hará nada. Además recuerda activarlo o tampoco hará nada.

Si lo tienes activo puedes indicar esta circustancia colocando en alguna parte de tu página un botón similar a los que se ponen para indicar que la página es válida a nivel de CSS y de HTML. Nosotros os proponemos el siguiente but-static para indicar que nuestra página se preocupa por generar los contenidos estáticos desde un dominio sin cookies. Mira aquí si deseas instalarlo.

Cómo funciona

Staticizer recoge la página justo después de que haya sido generada y antes de que sea enviada al usuario mediante el evento de sistema onAfterRender y busca en ella patrones asociados a elementos estáticos. En este punto Joomla! ya ha generado todo el contenido que hemos configurado incluyendo el de aquellos módulos que tenemos instalados y activos. Por elementos estáticos entendemos ficheros javascript, ficheros de hojas de estilo css e imágenes. Los patrones identificados para seleccionar este tipo de elementos son los siguientes:

  • <script src .js>, para los ficheros javscript
  • <link href .css>, para los ficheros de hojas de estilo
  • <img src .jpg o .png o .gif o .ico>, para las imagenes

Staticizer no procesa entradas individuales de script o de estilo incrustadas en la página. Cada una de las zonas que se localizan se procesan entonces para ver si referencian al dominio al que pertenece la página. Si este es el caso se selecciona la parte correspondiente y se actualiza el esquema si hemos indicado uno alternativo, el dominio al que hay que redirigir la petición y la ruta si hemos indicado una carpeta a eliminar. Esta nueva ruta sustituye a la localizada y el proceso continua con la siguiente.

Eficiencia del proceso

La eficiencia ha sido el aspecto principal a la hora del diseño. El encadenamiento de plugins hace que la búsqueda de la mayor eficiencia posible sea una obligación si no queremos dejar inoperante al entorno. Por eso la selección de todos estos patrones se realiza en una sóla pasada sobre el contenido de la página lo que limita nuestras posibilidades de localización ya que algunos de los requerimientos necesarios para incluir otras alternativas son contradictorios e imposibles de consolidar en un único patrón.

En este punto tenemos que tomar la decisión de realizar pasadas adicionales o renunciar a la localización de ciertos elementos que quedan fuera del esquema seleccionado. Dado que estos últimos representan un porcentaje muy reducido de los existentes se ha optado por la alternativa de pasada única con descarte de aquellos. Aunque esto puede cambiar si se demuestra que el descarte no es tan insignificante como hemos observado nosotros o encontramos nuevas formas de integrar estas referencias en el patrón actual.

Cómo verificar que funciona

El problema de Staticizer es que no muestra ningún signo externo que muestre que, o si, está funcionando correctamente. Ese es precisamente parte de su diseño y, sin embargo, resulta interesante saber si estamos obteniendo el resultado buscado. Pero existen varias formas en las que podemos realizar esa verificación nosotros mismos. La más simple es ir a la entrada correspondiente del menú de nuestro navegador y pedirle que nos muestra el código fuente de la página después de haber configurado y activado el plugin. Si tienes Firefox tambien puedes pulsar Ctrl-N y debieras ver que tus enlaces han sido cambiados por la dirección que has puesto como nombre de dominio estático tal y como muestra la siguiente pantalla:
result_check
en donde se puede apreciar que los enlaces a la página base (www.doymer.com) han sido sustituidos por el valor que hemos definido (static.doymer.com) sin que hayan sido modificadas otras entradas no consideradas elementos estáticos ni los contenidos de los scripts incrustados.

Otras alternativas

Como ya hemos indicado no nos ha sido posible capturar todos los patrones deseados en una única pasada y se han sacrificado algunos en aras de la velocidad de proceso. La utilización de esta metodología para la localización de las zonas interesantes tiene su lado negativo. Así, requiere que nuestros ficheros tengan extensiones fijas y que sean las incluidas en el patrón. Esto no suele ser problema ya que, habitualmente, es así. Pero si este no es nuestro caso esas referencias no serán capturadas.

Se han probado otros patrones pero ninguno ha sido tan eficiente pero si alguien tiene una propuesta que hacer estaremos encantados de atenderle.

Jerarquía

En una instalación de Joomla! pueden existir otros plugins de tipo sistema que también realicen procesos sobre el texto de la página. De la descripción anterior sobre el funcionamiento de Staticizer se deduce que el momento en el que se procesa la página es importante. Si después de haber sido procesada por Staticizer se añade contenido, lógicamente éste no podrá ser actualizado.

Esto ocurre por ejemplo con plugins como los que permiten insertar código de usuario, o cabeceras, con optimizadores, etc. En el caso de los que insertan código se suelen usar para incluir librerías de javascript adicionales o ficheros de estilo de usuario. Si estas inserciones se realizan después de haberse ejecutado Staticizer no serán capturadas. Un caso similar ocurre con los optimizadores. Estos suelen extraer todas las referencias a ficheros javascript y de estilo y eliminarlas de la página actual.

Por ello staticizer debiera colocado estar por debajo de los primeros pero por encima de éstos últimos. Para ello se debe usar el número de orden de los plugins de sistema. Selecciona 'system' como tipo en la lista de plugins disponibles y coloca Staticizer en la posición deseada. Es posible que tengas que probar un par de veces antes de encontrar la posición óptima. Mira el código fuente de la página para ver si el resultado es el deseado.

Limitaciones

Con nuestros patrones actuales determinados URLs incrustados no son detectados y, por tanto, no son transformados. Por el momento sabemos que se ignoran los siguientes:

  • Referencias de estilo incrustadas. Por ejemplo <div style="background: url()>"

Esperamos que nos ayudeis a localizar otros si existen.

Problemas

Mi dominio estático también contiene cookies

Mira los cookies que contiene, ¿son del tipo __utm[x], como __utma y __utmz? Esto significa que tus páginas contienen cookies de seguimiento de Google Analytics. El código que Google propone tiene la mala costumbre de asociar los cookies al nivel superior del dominio. Si tu sitio estático es un subdominio del dominio principal tal y como proponíamos en el artículo del que hemos hablado al principio entonces tendrá los cookies de Analytics asociados. Puedes evitar esto usando un dominio diferente o, si no quieres gastar en otro dominio, limitando los cookies al dominio desde el que sirves las páginas mediante la función _setDomainName del objeto pageTracker. Busca en la documentación de Google cómo hacer esto. Verás que es muy sencillo.

Las cookies de Google Analytics tienen una vida muy larga por lo que no van a desaparecer por si solas. Debes borrar las cookies asociadas al dominio raíz a mano si no quieres tener este problema permanentemente. La siguiente imagen te presenta una de estas cookies donde se puede apreciar que está asociada a todos aquellos (sub)dominios pertenecientes a la raíz doymer.com y que no expira hasta dentro de más de seis meses.
domain_cookie
Como cada navegador tiene su mecanismo para controlar las cookies no vamos a contar aquí el de ninguno. En cualquier caso debieras revisar las cookies que tienes y eliminar las que no quieras. Borrarlas todas es una posibilidad pero puede que borres alguna que si que desees tener o que necesites por lo que no es el mecansimo recomendado.

Si las cookies tienen otro nombre entonces habrá que buscar la razón. Accede a una imagen directamente servida desde tu dominio estático, ¿tiene cookies esta vez?

Los analizadores de página siguen diciendo que envíe el contenido estático desde un dominio sin cookies

Mira el punto anterior

Todavía quedan algunos elementos estáticos en mi página

Esto es así porque estos elementos no estaban cuando Staticizer recibió la página, bien porque se han añadido luego (lee la parte que habla del órden de ejecución) bien porque son referencias incluidas en los ficheros de estilo. Lo más probable es que estén asociadas a tu plantilla. Mira el código fuente de tu página para intentar deducir el origen del problema. Si es un problema del órden de ejecución reajustalo para que el plugin que genera esos contenidos se ejecute antes que Staticizer. Si es un problema de plantilla tendrás que editar directamente el fichero css correspondiente.

Cómo incluir el logo estático

Si has decidido que te gustaría incorporar en tu página el logo propuesto al principio entonces vas a tener que trabajar un poco con la plantilla en dónde quieras incorporarla. Puedes comenzar bajandote la imagen del mismo y guardarla en alguna parte de tu sitio (te recomendamos en el directorio de imagenes de la propia plantilla). Para bajarte la imagen basta que pulses el botón derecho de tu ratón sobre ella y le des a 'Guardar imagen como...'
but-static
Ahora tienes que añadir a la parte correspondiente de la plantilla el código siguiente para que la imagen aparezca. Si no la has guardado en la carpeta 'images' de la plantilla ten cuidado de sustituir '$tmpTools->templateurl();' e '/image/but_static.png' por la localización correcta donde guardaste el botón y por el nombre que le diste al guardarlo. La posición más popular es junto a los botones existentes de validación de CSS y de XHTML si tu sitio los tiene (mira al final de esta página para ver lo que te digo) pero puedes ponerlo en cualquier otro lugar que te guste. Si no los tiene entonces busca el pie de página (FOOTER) y ponlo debajo de '<jdoc:include type="modules" name="syndicate" />'. Esa es la principal razón de que el plugin no incluya la posibilidad de insertar el botón automáticamente y es que lo puedes poner en cualquier lugar que desees y si lo hacemos automáticamente además podemos romper tu plantilla así que no queda otra que hacerlo a mano.

<a href="http://www.doymer.com/static" target="_blank" title="<?php echo JText::_("We Serve 
Static Content");?>" style="text-decoration: none;" alt="<?php echo JText::_("We Serve Static Content");?>" />
<img src="/>?php echo $tmpTools->templateurl(); ?>/images/but-static.png" border="none" alt="<?php echo
JText::_("We Serve Static Content");?>" />
</a>

Puedes editar la plantilla directamente desde el disco duro, si tienes acceso al mismo, o desde la opción correspondiente en el entorno de administración de Joomla!. Cuando hayas terminado actualiza tu página y verifica que todo aparece como deseas.

Última actualización el Viernes 02 de Noviembre de 2012 12:17  

Archivo

Powered by ArtTree