访问某些页面会下载 gzip 文件而不是显示它们

访问某些页面会下载 gzip 文件而不是显示它们

我的网站偶尔会出现问题。访问页面时,浏览器只会下载 .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 浏览器存在某种缓存问题。我发现,当我清除浏览器缓存后,问题就消失了。

相关内容