2009-03-11 8 views
4

私はUbuntuに標準Apache2インストールを持っています。Apache2はヘッダーに "Content-Type"を送信していません

mod_deflateを動作させようとしましたが、それは私の.jsファイルをgzipしていないことに気付きました。より詳細な検査では、ApacheがContent-Typeを送信していないことが判明しました:.phpファイル以外のもの。彼らはDefaultTypeが "text/plain"なので、 "text/html"を送信しています。

私はこれがなぜ... mod_mimeが有効になっているのか分からず、私はconfigsに触れていません。ここで

は.cssのファイルのための私のサーバーからの応答の例です:

Date Wed, 11 Mar 2009 04:48:12 GMT 
Server Apache/2.2.9 (Ubuntu) 
Connection Keep-Alive 
Keep-Alive timeout=15, max=96 
Etag "30478-4fb-464bec553a600" 
Vary Accept-Encoding 

答えて

0

それは既知の問題です。どのubuntuバージョンですか?

私はApacheの設定に触れなかったubuntu 8.10とdebian 5のインストールを試しました。どちらもうまく動作します:

HTTP/1.x 200 OK 
Date: Wed, 11 Mar 2009 10:25:17 GMT 
Server: Apache/2.2.9 (Ubuntu) PHP/5.2.6-2ubuntu4 with Suhosin-Patch mod_wsgi/2.3 Python/2.5.2 
Last-Modified: Wed, 11 Mar 2009 10:19:41 GMT 
Etag: "1544ae-12-464d534a6c940" 
Accept-Ranges: bytes 
Content-Length: 18 
Keep-Alive: timeout=15, max=100 
Connection: Keep-Alive 
Content-Type: text/css 
+0

cat/etc/lsb-releaseは私にバージョン8.10を与えます –

2

これは、Content-Typeのデフォルト値がhttpd.confにコメントされているときに発生します。

私が覚えているように、Ubuntu 8.04ではtext/htmlに設定されています。

+0

httpd.confにあります:DefaultType html/plain ...これは奇妙です、私の.phpファイルの "text/html"をどう取得していますか? .jsファイルの場合は "text/javascript"、.cssファイルの場合は "text/css"? –

+1

私はイメージングのPHPがそれを注入するでしょう。 –

+0

Debian SqueezeからDebian Wheezyにアップグレードした後、この微妙なバグを発見しました。 'DefaultType'は(デフォルトで)Squeezeでは' text/html'、Wheezyでは 'none'でした。 Apacheが送信したヘッダーを確認した後、私はContent-TypeがWheezyから送信されていないことに気付きました。これにより、データファイルがインラインでレンダリングされようとしていた一部のブラウザ(IEなど)では、奇妙な問題が発生しました。 Squeezeの 'DefaultType'を' text/html'に戻してしまうと、その問題が解決され、IEがファイルをダウンロードするようになりました。 –

4

これは、このアイテムがeTagsを使用してキャッシュされた結果で、その事実を見落としているようです。

これは、これらのアイテムがブラウザのキャッシュにあり、実際にサーバーから送信されていないため、Content-Typeが存在しなかったことです。しかし、ブラウザはeTagでキャッシュルックアップを行っている間にサーバからヘッダを受け取っていました。これは私が見ていたものです。

関連する問題