El uso de PHP para cargar la página HTML inhibe cualquier intento de usar el archivo CSS actualizado

StackOverflow https://stackoverflow.com/questions/8819656

  •  27-10-2019
  •  | 
  •  

Pregunta

Tengo permisos de usuario en mi .html archivos distintos a 0744. En realidad están configurados para 0700 Entonces, para evitar esto, tengo SUPHP configurado y uso un load.php archivo para acceder y cargar todos los archivos. El archivo en cuestión es simple.html Archivo así:

test.html (0700):

<html>
    <head>
        <link rel="stylesheet" type="text/css" href="test.css" />
    </head>

    <body>
        <p> why is this not working?</p>
    </body>
</html>

test.css (0744):

body
{
    background-color:#bbcbde;
}    
p
{
    background-color:#bfc4de;
    color:'red' ;
    border:'solid black';
    font-size:35pt;
}

load.php (0744):

$page = $_GET['page'];
header("Location: http://www.example.com/" . $fileName);
exit;

Nota: El archivo CSS que he establecido en permisos normales 0744 para fines de depuración.

Si escribo http://www.example.com/load.php?page=test.html La página carga encontrar. Sin embargo, sospecho que el archivo CSS se está utilizando desde un caché porque ninguno de los cambios a test.css se aplican a test.html. Si elimino la línea

<link rel="stylesheet" type="text/css" href="test.css" />

El cambio se refleja a medida que el fondo se vuelve blanco nuevamente. Sin embargo, si muevo el css Archivo a, por ejemplo test2.css, y cambie el estilo (es decir, diferentes colores) y enlace a eso, los cambios son sorprendentemente no aplicado. Si me muevo test.css a test2.css sin vincular el nuevo nombre (similar a la eliminación del archivo), el css ¡El efecto todavía se aplica! Del mismo modo si yo chmod test.css a 0000 todavía usa la hoja de estilo. También conozco el .css el archivo no está dañado porque yo abre test.html localmente en mi máquina.

¿Alguien tiene alguna idea de lo que está pasando porque no tengo el más niebla?

EDITAR Según la respuesta de Murray McDonald a continuación, trazé el problema para tener que ver con un código de estado 304: no modificado. ¿Por qué se devuelve esto cuando el archivo ha cambiado claramente?

¿Fue útil?

Solución 2

Descubrí cuál es mi problema (aunque con un gran apoyo de Murray). Tengo mis carpetas configuradas como así

/
├── test
│   ├── test.html
│   └── test.css
├── load.php
└── test.css

pensé que

header("Location: http://www.example.com/" . $fileName);

Se iniciaría la página desde la carpeta correcta, pero incluso si escribo lo siguiente en el navegador

http://www.example.com/load.php?page=test/test.html

module.php, al buscar test.css devoluciones /test.css y no /test/test.css que es lo que quiero. Ahora, la pregunta es cómo le digo a PHP que establezca el directorio de trabajo.

Otros consejos

Cada vez que me encuentro con algo misterioso como este, escucho en el protcolio HTTP yendo y viniendo entre el navegador y el servidor usando "fiddler2": funciona en MSIE y Firefox. Puede ver fácilmente los encabezados de Reuest. Los encabezados de respuesta solicitan el cuerpo, el cuerpo de respuesta (si lo hay), etc.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top