PHPを使用してHTMLページをロードすると、最新のCSSファイルを使用しようとする試みを阻害します

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

  •  27-10-2019
  •  | 
  •  

質問

ユーザー許可があります .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.csstest2.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で動作します。応答ヘッダー要求ボディ、応答本体(もしあれば)などの再利用ヘッダーを簡単に見ることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top