部署一个聊天网站,用浏览器打开时发现css样式无法加载,技术方案如下:
同一服务器上有多个网站,用nginx做转发,聊天网站是用php开发的,所以使用了php-fpm。
nginx原配置如下:
include /etc/nginx/mime.types;
default_type application/octet-stream;
。。。。。。
server {
listen 80;
server_name xx.xx.xx.84;
root /usr/share/nginx/html/baoma;
location /chat {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index api.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
php-fpm和php.ini略。
百度到的文章几乎都是说,设置了mime.types即可,但浏览器打开时发现还是不行,console提示如题错误。用大白话说:就是css样式没有加载成功,被识别成text/html了。
后来受这篇文章启发: https://www.queyang.com/blog/archives/541, 估计是css和html都被转发给php,自动转换成text/html,所以修改第一个location如下:
location ~* \.(html)$ {
。。。
问题解决。
另外还发现一个办法,将html中的标签<!DOCTYPE HTML>去掉,也可以正常加载css了,但可能会引起其它问题,不是正常解决问题的办法。