2010-06-23 11 views
8

me gustaría configurar apache PHP5 de una manera queHabilitar PHP para leer .css y .js, manteniendo su forma original Content-Type

  1. .css y .js serán inspeccionados por php
  2. su tipo de contenido seguirá siendo por defecto (es decir, respectivamente, "text/css" y "application/x-javascript")

necesito esto porque ambos archivos CSS y JS están utilizando PHP mundial vars. Esto me permite desde un único archivo PHP controlar dinámicamente código CSS y JS (luego el proyecto se exporta para que los archivos css y js contengan los valores reales y no los echos de PHP).

La forma en que estoy haciendo en este momento es que añadí .css y .js extensión a php5.conf Apache:

AddType application/x-httpd-php .php .phtml .php3 .css .js 

También uso header ('Content-Type: [...] ') en la parte superior de cada archivo css/js para cambiar el valor del encabezado de tipo de contenido al original. Esto no es ideal ya que tengo que agregar manualmente esta línea a cada archivo css/js para que el encabezado Content-type sea apropiado, incluso si no utilizo los vars globales de PHP.

De todos modos, ¿puedo hacer que PHP inspeccione los archivos css/js manteniendo su tipo de contenido original sin tener que modificar los archivos css/js mismos?

Respuesta

6

No he intentado eso, pero a partir de los documentos que se ve posible:

<Files *.css> 
    php_value default_mimetype "text/css" 
</Files> 
<Files *.js> 
    php_value default_mimetype "application/x-javascript" 
</Files> 
# ... and so on for other types 
+0

fantástico que funciona :) Estoy usando Zend, acabo de poner que en el público/.htaccess y que funciona como un encanto. ¡GRACIAS! – Max

2

Si tuviera que hacer eso, habría hecho una vista especial para los archivos CSS y JavaScript. Por ejemplo, le diría a mi aplicación que maneje todas las solicitudes, digamos, /pseudostatic/css/somefilename.js por un controlador determinado, que tomaría una plantilla basada en el nombre de un archivo solicitado, anteponería todas las variables globales necesarias y lo serviría con una necesidad encabezamiento.

Y utilizaría el almacenamiento en caché según la marca de tiempo del archivo.

Pero creo que esto es realmente un dolor innecesario. Apuesto a que puedes encontrar la forma de evitarlo, como mantener la mayoría de tus CSS y Javascript en archivos estáticos y cargar solo un poco de scripts y estilos generados en el lado del servidor directamente dentro de la página solicitada. De esta manera, le ahorrará a su servidor mucho tiempo de procesamiento.

Cuestiones relacionadas