0

我对我的.html文件拥有除0744. 他们实际上设置为0700这样来解决这个问题,我设置了 suPHP,我使用一个load.php文件来访问和加载所有文件。有问题的文件是一个简单的 . html像这样的文件:

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;
}

加载.php(0744)

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

注意:出于调试目的,我已将 css 文件设置为正常 0744 权限。

如果我键入http://www.example.com/load.php?page=test.html页面加载找到。但是,我怀疑 css 文件是从缓存中使用的,因为没有test.csstest.html. 如果我删除线

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

当背景再次变为白色时,就会反映出这种变化。但是,如果我将css文件移动到,例如test2.css,并更改样式(即不同的颜色)并链接到该文件,则令人惊讶的是,这些更改并未应用。如果我在不链接新名称的情况下移动test.csstest2.css(类似于删除文件),css效果仍然适用!同样,如果我chmod test.css设置为 0000 它仍然使用样式表。我也知道.css文件没有损坏,因为我test.html在我的机器上本地打开。

有没有人知道发生了什么,因为我没有最起雾的。

根据下面 Murray McDonald 的回答进行编辑,我将问题归结为与 304: Not Modified 状态代码有关。为什么在文件明显更改时返回?

4

2 回答 2

1

每当我遇到像这样神秘的事情时,我都会使用“fiddler2”窃听浏览器和服务器之间来回传输的 HTTP 协议——它可以在 MSIE 和 Firefox 中运行。您可以很容易地看到 reuest 标头、响应标头请求正文、响应正文(如果有)等。

于 2012-01-11T13:16:02.813 回答
0

我弄清楚了我的问题(尽管得到了 Murray 的大力支持)。我的文件夹是这样设置的

/
├── 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 设置工作目录。

于 2012-01-11T14:08:14.940 回答