我遇到了 CSS 问题。这是基于 Debian Squeeze (nginx/0.7.67、php5/cgi) 的设置,我在其上安装了最新的 Roundcube 0.5 beta。
PHP 已正确处理,登录工作正常,但 CSS 文件未加载,并且 Firefox 抛出以下错误:
错误:样式表 https://webmail.example.net:10443/roundcube/skins/default/common.css?s=1290600165
未加载,因为其 MIME 类型“text/html”不是“text/css”。源文件: https://webmail.example.net:10443/roundcube/?_task=login 行:0
错误:样式表 https://webmail.example.net:10443/roundcube/skins/default/mail.css?s=1290156319
未加载,因为其 MIME 类型“text/html”不是“text/css”。源文件: https://webmail.example.net:10443/roundcube/?_task=login 行:0
据我所知,nginx 看不到 .css 扩展名(因为 ?s= 参数),因此将 mime 类型设置为默认值,即 text/html。
我应该在 nginx 中修复这个问题吗(以及如何修复?)或者它是否与 roundcube 有关?
编辑:似乎与 nginx 有关。内容类型未设置为除 text/html 之外的任何其他类型。我不得不手动包含以下声明来强制 CSS 和 JS 内容类型。这太糟糕了,我以前从未遇到过这个问题……有什么想法吗?
location ~ \.css { add_header Content-Type text/css; } location ~ \.js { add_header Content-Type application/x-javascript; }
答案1
对我来说也一样,Mime 类型是正确的,但是在我使用这个之后
location ~ \.css {
add_header Content-Type text/css;
}
location ~ \.js {
add_header Content-Type application/x-javascript;
}
我收到 404 未找到错误,删除该代码后,css 可以正常显示,但由于 mime 类型错误,Firefox 无法加载它
我使用的是 Nginx 0.9.3
找到问题了!看来我们正在通过 PHP 处理器运行所有内容,添加以下内容:
if ($uri ~ "\.php"){
fastcgi_pass php-fpm;
}
对我有用的部分location ~ ^\.php$ {
!谢谢!