我的网站偶尔会出现问题。访问页面时,浏览器只会下载 .gz 文件,而不会加载页面。重新加载页面几次后,页面最终会正确显示。大多数情况下,这种情况发生在访问 wiki(网站的一部分)上的页面时,但我也曾在网站的主要部分遇到过这种情况。
我正在使用 MediaWiki 的文件缓存,但没有使用内置的gzip 压缩(显示乱码)。我对整个网站使用了 mod_deflate(根据主机说明启用)和 mod_pagespeed。这个问题的棘手之处在于我无法准确重现它。它时不时地弹出,似乎没有任何原因。
我的.htaccess:
AddType image/svg+xml svg svgz
AddEncoding gzip svgz
AddType application/x-font-woff woff
AddDefaultCharset utf-8
# mod_deflate
AddOutputFilterByType DEFLATE text/text text/html text/plain text/xml text/css application/x-javascript application/javascript
<FilesMatch "\.(html|htm)$">
Header unset Etag
Header set Cache-control "max-age=0, no-cache"
</FilesMatch>
<FilesMatch "\.(jpg|jpeg|gif|png|js|css|woff|ttf|svg)$">
Header unset Etag
Header set Cache-control "public, max-age=604800"
</FilesMatch>
<IfModule pagespeed_module>
ModPagespeed on
ModPagespeedEnableFilters extend_cache
ModPagespeedEnableFilters collapse_whitespace
ModPagespeedEnableFilters combine_css
ModPagespeedEnableFilters move_css_to_head
ModPagespeedEnableFilters remove_comments
</IfModule>
# Wiki ShortURLs
RewriteEngine On
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [PT,L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?w/images/thumb/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2 [L,QSA,B]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?w/images/thumb/archive/[0-9a-f]/[0-9a-f][0-9a-f]/([^/]+)/([0-9]+)px-.*$ %{DOCUMENT_ROOT}/w/thumb.php?f=$1&width=$2&archived=1 [L,QSA,B]
wiki 缓存设置如下:
$wgMainCacheType = CACHE_ANYTHING;
$wgMemCachedServers = array();
$wgUseFileCache = true;
$wgFileCacheDirectory = "$IP/cache";
$wgShowIPinHeader = false;
$wgUseGzip = false;
服务器使用的是 PHP 版本 5.3.14,网站非 wiki 部分的所有文件都是 .php 文件。页面显示的内容编码为 gzip。该网站托管在 GoDaddy 上,到目前为止,这个问题只出现在 Chrome(版本 22.0.1229.79 m)中,尽管我还没有针对此问题对 Firefox 和 IE 进行广泛测试。
目前该网站几乎没有负载(只有少数人在测试)。我安装的 wiki 扩展只有:ConfirmEdit、Gadgets、ListRedLinks、Nuke、ParserFunctions、Renameuser、Vector 和 WikiEditor。其他都是原版。
所以,我的问题是:是什么导致了这个问题,为什么它只是随机出现,以及我该如何解决它?
答案1
问题在于浏览器,而不是安装。
看来 Google Chrome 浏览器存在某种缓存问题。我发现,当我清除浏览器缓存后,问题就消失了。