除 0744
之外,我对我的 .html
文件拥有用户权限。它们实际上设置为 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;
}
load.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.css
的任何更改都没有应用于 test.html
。如果我删除行
<link rel="stylesheet" type="text/css" href="test.css" />
当背景再次变为白色时会反射(reflect)出变化。但是,如果我将 css
文件移动到,例如 test2.css
,并更改样式(即不同的颜色)并改为链接到该样式,则更改会令人惊讶未应用。如果我将 test.css
移动到 test2.css
而不链接到新名称(类似于删除文件),css
效果仍然应用!同样,如果我将 chmod
test.css
设置为 0000,它仍然使用样式表。我还知道 .css
文件没有损坏,因为我在我的机器上本地打开了 test.html
。
有没有人知道发生了什么,因为我没有最模糊的东西。
EDIT 根据下面 Murray McDonald 的回答,我追查到问题与 304: Not Modified 状态代码有关。为什么在文件明显改变时返回这个?
最佳答案
每当我遇到像这样神秘的东西时,我都会使用“fiddler2”窃听在浏览器和服务器之间来回传输的 HTTP 协议(protocol)——它适用于 MSIE 和 Firefox。您可以轻松地看到 reuest header 响应 header 请求正文、响应正文(如果有)等。
关于php - 使用 PHP 加载 html 页面禁止任何尝试使用最新的 css 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8819656/