Eu tenho um problema com arquivos CSS sendo marcados incorretamente text / html pelo Apache. O tipo de arquivo é incompatível no navegador e é ignorado, causando falhas de exibição.
Estou usando o Apache 2.2.3 em um servidor RHEL 5.
Eu tentei adicionar isso a httpd.conf
e recarregar a configuração com service httpd reload
:
AddType text/css .css
Nenhuma mudança conforme vista pelo navegador. Meu arquivo css ainda está mostrando text/html
(mesmo quando eu uso php curl para testar o tipo mime .. não faz diferença, o servidor está enviando um arquivo text/html
)
Em seguida, comentei as seguintes linhas de httpd.conf
, para ter certeza de que algo maluco não estava acontecendo com mágica:
LoadModule mime_magic_module modules/mod_mime_magic.so
<IfModule mod_mime_magic.c>
MIMEMagicFile /usr/share/magic.mime
MIMEMagicFile conf/magic
</IfModule>
Uma vez que esses foram reservados, eu salvei & recarregou a configuração. Nenhuma mudança. Os arquivos .css ainda estão aparecendo como text/html
.
Configuração padrão do Virtualhost:
<VirtualHost 1.2.3.4:80>
ServerName my.site.com
ServerAdmin [email protected]
DocumentRoot /var/www/mysite/
# Log info redacted #
</VirtualHost>
Configuração SSL do Virtualhost:
<VirtualHost 1.2.3.4:443>
ServerName my.site.com
ServerAdmin [email protected]
DocumentRoot /var/www/mysite/
# Log info redacted #
# SSL Certificate config redacted #
<Files ~ "\.(cgi|shtml|phtml|php3?)$">
SSLOptions +StdEnvVars
</Files>
SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
CustomLog logs/ssl_request_log \
"%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
</VirtualHost>
Veja o que estou recebendo do shell:
[boxor]# file --mime install.css
install.css: text/x-c; charset=us-ascii
Veja o que estou recebendo do php:
$file = 'https://my.site.com/traq/install/install.css';
echo mime_content_type($file);
$file = $_SERVER['DOCUMENT_ROOT] . '/traq/install/install.css';
echo mime_content_type($file);
retorna:
text/html; charset=UTF-8
text/plain
Errado em todas as três contagens.
Aqui está uma linha do meu log de acesso do Apache (com o tipo de conteúdo adicionado):
1.2.3.4 - - [10/Oct/2012:08:32:38 -0400] "GET /traq/install//install.css HTTP/1.1" 200 2600 "http://my.site.com/traq/install/" "text/html" "Mozilla/5.0 blahblah Firefox/15.0.1"
Um arquivo css inexistente incluído na mesma página também é retornado como "text / html":
1.2.3.4 - - [10/Oct/2012:09:11:11 -0400] "GET /traq/install/idontexist.css HTTP/1.1" 200 2600 "http://my.site.com/traq/install/" "text/html" "Mozilla/5.0 blahblah Firefox/15.0.1"
Então ...
O que eu estou negligenciando aqui?