nginx 无法识别 css 和图像:资源被解释为样式表,但使用 MIME 类型 text/html 传输

Rub*_*ben 3 php webserver nginx mime-types

我正在尝试在子目录中运行 Rainloop。http://babylon/webmail。我得到 css 和 js 无法识别。例如:

Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://babylon/webmail/rainloop/v/1.10.5.192/static/css/rainloop/v/1.10.5.192/static/css/app.min.css?standard".
Run Code Online (Sandbox Code Playgroud)

我尝试过的一些可能(但不起作用)的解决方案:

  1. “包括/etc/nginx/mime.types;” 在 nginx.conf 中找到。
  2. 有人说,php 的位置搞砸了那部分,所以我应该添加这一行:

    fastcgi_split_path_info ^(.+.php)(/.+)$; #这一行

但它仍然不起作用。

  1. 我用 root 为 css 和 javascript 添加了新位置,但也没有。

我的配置是这样的:(它是一个包含文件)

location ^~ /webmail {
    root /srv/rainloop/public_html;
    try_files $uri $uri/ /webmail/index.php?$query_string;
    access_log /srv/rainloop/logs/access.log;
    error_log /srv/rainloop/logs/error.log;
    index index.php;
    access_log /var/log/nginx/scripts.log scripts;

    location ~ \.php$ {
        #if (!-f $request_filename) { return 404; }
        include fastcgi_params;
        #fastcgi_split_path_info ^(.+\.php)(/.+)$; #this line
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        #fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param SCRIPT_FILENAME /srv/rainloop/public_html/index.php;
    }

    location ~ /\.ht {
        deny all;
    }

    location ^~ /webmail/data {
        deny all;
    }
}
Run Code Online (Sandbox Code Playgroud)

San*_*yev 7

我认为它可以解决您的问题。

location ~ \.css {
    add_header  Content-Type    text/css;
}
location ~ \.js {
    add_header  Content-Type    application/x-javascript;
}
Run Code Online (Sandbox Code Playgroud)