连接已重置-加载样式表

时间:2018-09-02 18:38:44

标签: php css mysql apache

我编写了几个函数,用于将多个样式表组合为主文件,然后根据管理配置文件设置一堆样式。这两个功能都起作用。

第一次使用

$data = file_get_contents("custom.css");
file_put_contents( "$ss","$data",FILE_APPEND);

将引导程序和其他一些文件合并为一个。

第二个使用fopen和fwrite从mysql获取计算的数据并将样式转储到第二个样式表中。没什么复杂的。

该想法是减少HTTP请求上线的时间,并使开发过程中的更改更简单。

有时,当我加载网站并访问其他页面时,它无法加载2个样式表中的任何一个,导致页面混乱。在Firefox和Chrome中都会出现此问题。失败时,浏览器(Firefox)返回 标签中的“问题加载页面”和正文中的“连接已重置...”。

如果我重新加载它几次(可能超过30秒),它将自动修复,但是加载其他页面可能会使它再次出现。

我已经尝试过各种方法,包括向样式表中添加版本:

<link rel="stylesheet" href="http://www.demo-website.suffix/demo/core.css?v=1611">
<link rel="stylesheet" href="http://www.demo-website.suffix/demo/hack.css?v=1612">

也尝试不添加http:// ...来看文件系统,文件很好。该脚本几乎立即运行。

我想知道我遇到的是php问题还是Apache?还是其他?


2018年9月3日注意事项:

错误日志-我启用了php错误日志,是的,我发现了一系列警告错误,几乎所有未定义的变量。然后,我系统地修复了所有错误,并重新检查了网站/页面,发现没有区别,没有改善。

我想知道通过将文件合并/压缩为一个或两个来减少http请求的效果。我见过一个慢速wordpress的magento网站,可能有15个样式表,还有javascript和十几个插件,它们对minify / combine有一些变化。也许是框架?当您对优化进行研究并使用ySlow(或替换)或服务等工具时,他们总是建议缩小和合并以提高分数。听起来不错。

一些历史-设计网站时,我的目标是进行样式更改并立即查看更改。不幸的是,即使清除说明,我的一些客户也无法清除浏览器缓存。

我见过一些情况,我在头或.htaccess版本中添加了无缓存行,但它们仍然是旧样式。可能是用户错误。即使没有缓存,我也通常会在样式表更改生效之前看到30秒的延迟。服务器配置选项中与此无关。我的想法是,至少在开发周期内,我将组合/最小化样式表并添加时间戳版本控制,以便我可以立即获得回报。

$version = date('YmdHis');
<link rel="stylesheet" href="http://www.website.domain//stylesheet.css?v=<?php echo $version; ?>">

虽然通常可以加载第一页,但是当我加载其他页面时却失败,并且看到错误。该版本会为每个页面更新。 stylesheet.css文件很好,但是仍然失败。有点奇怪。

如果我将版本更改为更简单的$ version = 123,则不会出现“连接重置”错误,但似乎回到了30秒的保持时间。

防止缓存的代码:

<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
<meta http-equiv="Pragma" content="no-cache" />
<meta http-equiv="Expires" content="-1" />

0 个答案:

没有答案