PHPを使用してHTMLページをロードすると、最新のCSSファイルを使用しようとする試みを阻害します
質問
ユーザー許可があります .html
以外のファイル 0744
. 。彼らは実際に設定されています 0700
これを回避するために、私はSUPHPのセットアップを持っています、そして私は load.php
すべてのファイルにアクセスしてロードするファイル。問題のファイルは簡単です。html
SOのようなファイル:
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;
注:デバッグ目的で、通常の0744許可に設定したCSSファイル。
入力した場合 http://www.example.com/load.php?page=test.html
ページの読み込みが見つかります。ただし、CSSファイルはキャッシュから使用されていると思います。 test.css
に適用されます test.html
. 。線を削除した場合
<link rel="stylesheet" type="text/css" href="test.css" />
背景が再び白くなるにつれて、変化は反映されます。ただし、移動した場合 css
たとえば、ファイルに test2.css
, 、そしてスタイル(つまり、異なる色)を変更し、代わりにそれにリンクすると、変更は驚くほどです いいえ 適用。私が動いたら test.css
に test2.css
新しい名前にリンクせずに(ファイルの削除と同様)、 css
効果はまだ適用されています!同様にiの場合 chmod
test.css
0000には、まだスタイルシートを使用します。また、私は知っています .css
私が開いているため、ファイルは破損していません test.html
私のマシン上でローカル。
私が最も霧を持っていないので、誰かが何が起こっているのか考えていますか?
編集 以下のMurray McDonaldの回答によると、私は問題を追跡し、304に関係していません:変更されていないステータスコード。ファイルが明確に変更されたときに、なぜこれが返されるのですか?
解決 2
私は自分の問題を理解しました(マレーからの大きなサポートがありますが)。フォルダーがそのようにセットアップされています
/
├── test
│ ├── test.html
│ └── test.css
├── load.php
└── test.css
私はそう思った
header("Location: http://www.example.com/" . $fileName);
正しいフォルダー内からページを起動しますが、ブラウザに次のと入力しても
http://www.example.com/load.php?page=test/test.html
module.php
, 、検索するとき test.css
戻り値 /test.css
そしてそうではありません /test/test.css
それが私が欲しいものです。さて、問題は、PHPにワーキングディレクトリを設定するように指示する方法です。
他のヒント
このような神秘的な何かに出くわすたびに、「fiddler2」を使用してブラウザとサーバーの間を行き来するHTTPプロトールを盗聴します。MSIEとFirefoxで動作します。応答ヘッダー要求ボディ、応答本体(もしあれば)などの再利用ヘッダーを簡単に見ることができます。