我们将我们的 Web 服务器迁移到 Nginx 主要是为了性能、灵活性和易于配置(在这方面,我们非常满意!)。
然而,只有一个网站表现出奇怪的行为:它在<head>
CSS中加载
<link type="text/css" rel="stylesheet" href="/css/appli-test-local/appli.css">
Firefox 拒绝加载 CSS 文件,并抱怨 MIME 类型不是 css
The stylesheet http://client...com/css/appli-test-local/appli.css was not loaded because its MIME type, "text/html", is not "text/css".
删除破折号-
有效
<link type="text/css" rel="stylesheet" href="/css/applitestlocal/appli.css">
Nginx 配置
关于 Nginx 配置,已经检查过多次,根据网上的大量示例,该mime.types
文件包含
text/html html htm shtml;
text/css css;
以及主要部分的 nginx.conf
http {
include /etc/nginx/mime.types;
include /etc/nginx/fastcgi.conf;
default_type application/octet-stream;
处理破折号时 Nginx 可能存在错误吗?Nginx 是一款编写良好的软件,我很惊讶,但事实可能如此。我是否忽略了一些显而易见的东西?
该问题仅发生在 Firefox 中,因为 FF 确实关心 mime 类型(这是一件好事!)。
答案1
我当时编译了最新的 nginx,问题仍然存在。看来这是 nginx 在路径/正则表达式解析中的错误,不能很好地处理破折号。
没有相关的答案,所以我接受这个。
答案2
如果您通过默认发行版存储库安装了 Nginx,那么您很可能正在使用非常过时的 Nginx 版本,该版本很可能包含这样的错误。
为了进行测试,您应该尝试找到更新的存储库或从源代码编译最新版本。如果这不起作用,则粘贴服务器操作系统和整个配置文件。