为什么我的CSS显示 ?

Cod*_*ker 3 css apache https character-encoding flask

系统详细信息:
服务器:Apache,Ubuntu 16.02
客户端:Windows 10,Chrome

我的apache配置文件如下所示:

<VirtualHost *:80>
       ServerName mycoolsiteA.mydomain.com
       ServerAlias mycoolsiteB.mydomain.com

       Alias /static /var/www/python/mysite/static
       Alias /templates /var/www/python/mysite/templates

       WSGIDaemonProcess my_app user=www-data group=www-data threads=5
       WSGIScriptAlias / /var/www/python/mysite/start.py
       WSGIScriptReloading On

       <Directory /var/www/python/mysite>
               WSGIProcessGroup my_app
               WSGIApplicationGroup %{GLOBAL}
               order deny,allow
               Allow from all
       </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

当我在浏览器中加载CSS时,它显示以下内容.但是,这很随机.它"有时"有效,有时则无效.

我的示例网址是:https: //mycoolsiteA.mydomain.com/static/css/bs/bootstrap.min.css

我们有一个防火墙设备可以自动将http重定向到https,但我正在用https直接加载css.

结果如下: 在此输入图像描述

然而,如果我刷新几次,或者在末尾添加ar = number,它将清除缓存并加载.但是,它会再次随机执行,直到我再次清除缓存.

在这里加载和工作:

在此输入图像描述

有什么想法,方向可以解决这个问题吗?

Mac*_*ity 8

欢迎来到UTF-8的有趣世界!

我在PHP中已经看过几十次了(一直看到UTF-8).你所经历的几乎肯定是一个UTF-8文件作为一些其他字符编码提供(反之亦然).我下载了Bootstrap,Notepad ++将它们标识为ANSI编码.您的Web服务器可能强制使用UTF-8.查看类似这样的响应头

Content-Type: text/css; charset=UTF-8
Run Code Online (Sandbox Code Playgroud)

所以你的网络服务器说它是UTF-8,但事实并非如此.此时您的浏览器开始呕吐?,这意味着它无法识别该角色.

如果是这种情况,有几种方法可以解决这个问题.

  1. 将文件重新编码为UTF-8(Notepad ++可以为您完成此操作)
  2. 停止传递默认的UTF-8.您的浏览器将尝试识别编码

只是为了踢,尝试直接从MaxCDN服务器加载CSS

<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
Run Code Online (Sandbox Code Playgroud)

它们不传递UTF-8标头