atom feed6 messages in ru.sysoev.nginxRe: Wrong Content-Type
FromSent OnAttachments
Julien VehentDec 3, 2010 12:16 am 
Igor SysoevDec 3, 2010 12:45 am 
Julien VehentDec 3, 2010 1:16 am 
Igor SysoevDec 3, 2010 1:19 am 
Julien VehentDec 3, 2010 2:17 am 
Igor SysoevDec 3, 2010 2:59 am 
Subject:Re: Wrong Content-Type
From:Igor Sysoev (ig@sysoev.ru)
Date:Dec 3, 2010 2:59:08 am
List:ru.sysoev.nginx

On Fri, Dec 03, 2010 at 11:17:57AM +0100, Julien Vehent wrote:

On 12/03/2010 10:20 AM, Igor Sysoev wrote:

On Fri, Dec 03, 2010 at 10:16:34AM +0100, Julien Vehent wrote:

On 12/03/2010 09:45 AM, Igor Sysoev wrote:

On Fri, Dec 03, 2010 at 09:17:13AM +0100, Julien Vehent wrote:

Hi list,

I'm having a content-type issue with nginx 0.7 on Debian Squeeze.

I have mime.types included in the "http" directive, but when requesting CSS or Javascript file, the content type is set to text/html. (the application is Roundcube 0.5 beta).

I have found a workaround by adding this in my server declaration:

location ~ \.css { add_header Content-Type text/css; }

But it's quite ugly. Is there any better way to fix this problem ?

Does nginx proxy these files or handle them as static files ?

Static files stored in /var/www and owned by www-data (nginx process owner). It's the default debian configuration.

Php5 is fastcgi on a local tcp socket. There is nothing wrong in error.log.

Are these CSS and JS files handled by PHP ?

Good catch ! I don't know how I missed this, but I was sending ALL of the static files to PHP...

My location was set like that:

----- location /roundcube { client_max_body_size 100m; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass 127.0.0.1:9000; }

-----

I changed it to add the if constraint and it works fine now:

----- location /roundcube { client_max_body_size 100m; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; if ($uri ~ "\.php"){ fastcgi_pass 127.0.0.1:9000; } }

This is wrong way to it: you should use just locations:

location /roundcube/ { location ~ \.php { client_max_body_size 100m; fastcgi_pass 127.0.0.1:9000; include fastcgi_params; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; } }