En utilisant PHP à la page html de charge empêche toute tentative d'utiliser à jour le fichier css
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é?
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.