En utilisant PHP à la page html de charge empêche toute tentative d'utiliser à jour le fichier css

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

  •  27-10-2019
  •  | 
  •  

Question

J'ai des droits d'utilisateur sur mes fichiers autres que .html 0744. Ils sont effectivement mis à 0700 afin de se déplacer, j'ai suPHP mis en place, et j'utiliser un fichier load.php d'accès et de charger tous les fichiers. Le fichier en question est un simple fichier .html comme ceci:

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;

Note:. Le fichier css j'ai mis à 0744 autorisations normales pour des fins de débogage

Si je http://www.example.com/load.php?page=test.html de type chargement de la page trouver. Cependant, je pense que le fichier css est utilisé à partir d'un cache, car aucun des changements à test.css sont appliqués à test.html. Si je supprime la ligne

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

Le changement se reflète que le fond redevient blanc. Cependant, si je déplace le fichier css, par exemple test2.css, et changer le style (c.-à. Différentes couleurs) et un lien vers ce lieu, les changements sont suprisingly pas appliqués. Si je déménage à test.css test2.css sans lien vers le nouveau nom (similaire à la suppression du fichier), l'effet de css est toujours appliquée! De même, si je chmod test.css à 0000, il utilise toujours la feuille de style. Je sais aussi le fichier .css n'est pas corrompu parce que j'ouvre con en test.html localement sur ma machine.

Est-ce que quelqu'un a une idée de ce qui se passe parce que je n'ai pas la moindre idée.

EDIT selon la réponse de Murray McDonald ci-dessous, je remonte sur le problème d'avoir à faire avec un 304: code d'état Non modifié. Pourquoi est-ce retourné lorsque le fichier a clairement changé?

Était-ce utile?

La solution 2

Je me suis dit ce que mon problème (mais avec un grand soutien de Murray). J'ai mes dossiers mis en place comme si

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

Je pensais que

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

lancerait la page dans le dossier correct, mais même si je tapez la commande suivante dans le navigateur

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

module.php, lors de la recherche de rendements test.css /test.css et non /test/test.css qui est ce que je veux. Maintenant, la question est de savoir comment je le dis php pour définir le répertoire de travail.

Autres conseils

Chaque fois que je tombe sur quelque chose de mystérieux comme cela, je eavesdrop sur le HTTP Protcol va et vient entre le navigateur et le serveur en utilisant « Fiddler2 » - cela fonctionne dans MSIE et Firefox. Vous pouvez facilement voir les en-têtes reuest les en-têtes de réponse demandent corps, corps de réponse (le cas échéant), etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top